在TFS Team Build中发布ClickOnce应用程序
我们的解决方案中有几个在TFS Team Build中发布ClickOnce应用程序,tfs,msbuild,clickonce,publish,Tfs,Msbuild,Clickonce,Publish,我们的解决方案中有几个.exe项目。我们试图实现的是,当使用TFS Team Build构建项目时,我们希望MSBuild在输出文件夹中创建一个ClickOnce文件。这相当容易做到:我只是简单地将Publish添加到我的项目的DefaultTargets属性中: <Project DefaultTargets="Publish;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="
.exe
项目。我们试图实现的是,当使用TFS Team Build构建项目时,我们希望MSBuild在输出文件夹中创建一个ClickOnce
文件。这相当容易做到:我只是简单地将Publish
添加到我的项目的DefaultTargets
属性中:
<Project DefaultTargets="Publish;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
...
</Project>
但这不起作用。我相信我需要在我的目标标记中添加其他属性,以便MSBuild
知道我想要ClickOnce
target on$(TeamBuildOutDir)!=“”代码>,但我不知道怎么做。感谢您的帮助
编辑
我尝试了这个(没有条件=“$(TeamBuildOutDir)!=”
),只是想看看它是否能在本地工作:
<Target Name="AfterBuild">
<MSBuild
Projects="$(MSBuildProjectFullPath)"
Targets="Publish"
Properties="PublishDir=C:\ClickOnce"/>
</Target>
但是项目中没有循环依赖关系!没有这个目标标记,项目就可以正常构建。我真的很困惑。如何使用BuildingSideVisualStudio属性来确定何时调用publish
我应该补充一点,循环依赖很可能是因为您正在调用它目前正在构建的同一个项目文件。因此,最终将进入一个递归循环。
<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"