沒裝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了.