Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TFS Team Build中发布ClickOnce应用程序_Tfs_Msbuild_Clickonce_Publish - Fatal编程技术网

在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"