沒裝SQL Express怎麼玩Windows Azure – part 2

沒裝SQL Express怎麼玩Windows Azure – part 2

昨天發了一篇”沒裝SQL Express怎麼玩Windows Azure”,

沒想到在跑Windows Azure SDK Sample中的StorageClient又發生了無法建立資料庫的問題.

Windows Azure中提供了Storage Account讓你可以存放資料,

也提供了hosted services讓你可以放你所開發的程式.

Windows Azure SDK中則是Development Fabric讓你在你的環境中模擬hosted services

以及Development Storage模擬Storage Account,

而其中Development Storage是使用SQL Express來當資料庫,

所以如果要先在你的電腦上測試的話,必須先裝SQL Express才行.

不過,因為原本已經有裝SQL Server,不想再裝Express,所以就需要改些設定.

 

所以除了上一篇所說的設定要改外,

再來還有兩個檔案要修改,才能讓rundevstore.cmd正常的執行.

1.修改Microsoft.Samples.ServiceHosting.Targets,檔案位置是C:\Program Files\Windows Azure SDK\v1.0\samples\MSBuild

在檔案開頭的PropertyGroup中加入下面的標籤

<!-- Allow user to pass the server parameter to devtablegen -->
<DevStoreParam Condition="'$(InstanceName)'!=''">/server:$(InstanceName)</DevStoreParam>
<DevStoreParam Condition="'$(InstanceName)'==''"></DevStoreParam>
<!-- Read the install path from the registry if it's not set explicitly. –>

然後再修改Target標籤名稱為UpdateSamplesTableDB的標籤(加上上面幾行後,大約在130行左右)整個換成

<Target Name="UpdateSamplesTableDB" DependsOnTargets="BuildSubProjects">
  <Message Text="$(DevTableGenCommand) $(DevStoreParam) /database:$(SamplesDBName) $(DevtableGenForceCreateFlag) @(DevTableGenAssemblies)"/>
  <Exec Condition="'$(SamplesDBName)'!=''"
          Command="$(DevTableGenCommand) $(DevStoreParam)  /database:$(SamplesDBName) $(DevtableGenForceCreateFlag) @(DevTableGenAssemblies)"
  WorkingDirectory="$(MSBuildProjectDirectory)"/>
</Target>

2.修改rundevstore.cmd,檔案位置在C:\Program Files\Windows Azure SDK\v1.0\samples下

%msbuild% MSBuild\BuildAll.proj   /t:RunDevStoreOnSamplesTableDB /p:SamplesDBName=ServiceHostingSDKSamples;ForceTableCreate=true

改為

%msbuild% MSBuild\BuildAll.proj   /t:RunDevStoreOnSamplesTableDB /p:SamplesDBName=ServiceHostingSDKSamples;ForceTableCreate=true;InstanceName=.

如此一來,不用再裝express就可以好好的玩Windows Azure SDK了.

 

參考網頁 : Using an Existing SQL Instance With Azure SDK