在TFS Team Build中发布ClickOnce应用程序

时间:2014-01-02 22:48:05

标签: tfs msbuild tfs2010 clickonce publish

我们的解决方案中有几个.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标记,项目构建得很好。我真的很困惑。

1 个答案:

答案 0 :(得分:0)