2
Visual Studio 2012. SQL Server數據庫項目。MSBuild和SQL Server數據庫項目:將部署和發佈Desination綁定到構建配置
在解決方案中創建了四種構建配置:Debug,DevDb,TestDb,LocalDb。
三個發佈配置文件是在項目中創建的:(!)DevDb.publish.xml,TestDb.publish.xml,LocalDb.publish.xml
推F5鍵我想:
- 部署項目從項目屬性的連接字符串如果 生成配置是調試。
- 發佈項目,連接字符串 從相應的發佈配置如果構建配置是 DevDb,TESTDB或的LocalDB。
要做到這一點,我編輯項目(.sqlproj)XML,試圖趕上部署目標的呼叫,並用自定義行爲取代非標準部署目標:
<Target Name="Deploy">
<!-- The first statment is for Debug configuration -->
<MSBuild Condition=" '$(Configuration)' == 'Debug' "
Targets="Deploy"
Projects="$(MSBuildProjectFile)"
Properties="Configuration=$(Configuration);"
/>
<!-- The second statement is for DevDb, TestDb, LocalDb configurations -->
<MSBuild Condition=" '$(Configuration)' != 'Debug' "
Targets="SqlPublish"
Projects="$(MSBuildProjectFile)"
Properties="SqlPublishProfilePath=$(Configuration).publish.xml;
Configuration=$(Configuration);"
/>
</Target>
第二條語句工作正常我將部署到正確的目的地。
問題出在第一條語句 - 它會產生循環依賴。
錯誤MSB4006:涉及目標「部署」的目標依賴關係圖中存在循環依賴項。
我的問題是:如何相交(捕獲和替換)標準目標,是否需要再次調用標準目標?
還是我試圖重新發明輪子,還有另一種方法去做我想要的? (我想要的是上面描述的「推F5按鈕」:)