既存のASP.NETとかWebRoleを1つのAzureプロジェクトでまとめる
やりたいこと
Azureプロジェクトをテンプレートから作成した以外に、既存のWebRoleとか既存のASP.NETをAzureプロジェクトで再利用したい。
イメージ的には
http://localhost/ <- Azureプロジェクトで作成したデフォルトのWebRoleが参照される
http://localhost/OtherWebRole <- 既存のAzureプロジェクトで作成したページが参照される
http://localhost/OtherASP <- 既存のASP.NETで作成したページが参照される
手順
- まとめるためのAzureプロジェクトを作成。ここではWindowsAzure1プロジェクト、WebRoleはWebRole1として作成する。
- 既存のAzureプロジェクトから再利用したいWebRoleをWindowsAzure1プロジェクト配下にコピーする。(OtherWebRoleディレクトリとする。
- 同様に既存のASP.NETプロジェクトから再利用したいWebAppをWindowsAzure1プロジェクト配下にコピーする。(OtherASPディレクトリとする。
- WindowsAzure1プロジェクトをVisualStudioで起動して、OtherWebRole、OtherASPを「既存プロジェクトを追加」で追加する。
- OtherWebRoleでWebRole.csを削除する。
- WindowsAzure1プロジェクトのServiceDefinition.csdefを次のように編集する。
<?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="WindowsAzure1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-05.1.7"> <WebRole name="WebRole1" vmsize="Small"> <Sites> <Site name="Web"> <!-- VirtualApplication を追加する START --> <VirtualApplication name="OtherWebRole" physicalDirectory="..\OtherWebRole"/> <VirtualApplication name="OtherASP" physicalDirectory="..\OtherASP"/> <!-- VirtualApplication を追加する END --> </Site> </Sites> </WebRole> </ServiceDefinition>
これであとは実行すればokです。
プロジェクトによって必要なライブラリとかあると思うので、それらはWindowsAzure1プロジェクトに追加したり、参照を設定しなおしたりすればいい感じです。