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按钮”:)