我们的解决方案中有几个.exe
个项目。我们想要实现的是当使用TFS Team Build构建项目时,我们希望MSBuild在输出文件夹中创建ClickOnce
文件。这很容易做到:我只是将Publish
添加到项目的DefaultTargets
属性中:
<Project DefaultTargets="Publish;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
...
</Project>
但是,即使在本地构建项目(例如,在ClickOnce
模式下),也会创建Debug
应用程序。有没有办法指定条件,以便只有在条件为真时才调用Publish
?我试图像这样添加一个新的Target
:
<Target Condition="$(TeamBuildOutDir) != ''" Name="Publish" />
但这不起作用。我相信我需要在目标代码中添加其他属性才能让MSBuild
知道我需要ClickOnce
$(TeamBuildOutDir) != ''
目标,但我不知道该怎么做。任何帮助表示赞赏。
我试过这个(没有Condition="$(TeamBuildOutDir) != ''"
)只是为了看看它是否可以在本地运行:
<Target Name="AfterBuild">
<MSBuild
Projects="$(MSBuildProjectFullPath)"
Targets="Publish"
Properties="PublishDir=C:\ClickOnce"/>
</Target>
但是,我收到以下错误:
There is a circular dependency in the target dependency graph involving target "AfterBuild"
但项目中没有循环依赖!没有此Target标记,项目构建得很好。我真的很困惑。
答案 0 :(得分:0)
使用BuildingInsideVisualStudio属性确定何时调用publish?