4

我们有一个 WPF 应用程序,我们正在使用 TFS 2010 进行持续集成。每次签入源代码控制都会触发一个新的构建。我只想在每次构建后将此项目发布/部署到本地文件夹。我怎样才能做到这一点?

实际上,我们还有另一个 WCF 服务项目,我设法为此设置了持续集成。它已构建,运行单元测试,然后成功部署到调试服务器。我设置的构建定义是:

    Clean Workspace = None
    Copy Outputs to Drop folder = False
    MSBuildArguments =
    /p:DeployOnBuild=True
    /p:DeployTarget=MsDeployPublish
    /p:MSDeployServiceURL=http://<serverIP>
    /p:DeployIISAppPath="/DebugSite"
    /p:CreatePackageOnPublish=True
    /p:MsDeployPublishMethod=InProc (changed from RemoteAgent, didnt bother to try and remove other parameters)
    /p:AllowUntrustedCertificate=True
    /p:UserName=...
    /p:Password=...

但是当我为这个 WPF 项目使用相同的配置时,它被编译但没有任何东西被放到目标文件夹中。它只是空的。(顺便说一句,我知道在 IIS 中正确定义了目标文件夹,因为如果我从 VS2010 发布相同的项目,它已成功部署并且可以使用 IE 浏览。)

我已经为此苦苦挣扎了一段时间。我发现了许多“接近”的问题和解决方案,但没有一个对我有用。例如:

  • 受到 部署 WPF 应用程序的最简单方法是什么的启发?,我在构建的工作流程中添加了一个“CopyDirectory”活动,它将构建的输出目录的内容复制到我的目的地。这在输出文件夹中填满了很多文件,这些文件显然都是用 .exe、.xbap 和所有 .dll 编译的产品,但它们不能用作 WPF 应用程序。尝试使用放置位置最终得到了类似的结果。当我尝试浏览该应用程序时,我收到以下错误:

    An exception occurred while downloading the application. Following failure messages were detected:
     - Downloading http://server/DebugSite/MyProject.exe.config.deploy did not succeed.
     - The remote server returned an error: (404) Not Found.
    
  • 还发现以下问题未得到解答:http ://social.msdn.microsoft.com/Forums/en-US/tfsbuild/thread/e9abf652-223f-4683-9c07-f3064cd4296f这对我来说几乎是同样的问题,除了我' m 使用 IIS 7 和 windows server 2008。

那么,如何让 TFS 在构建后部署 WPF 应用程序?

4

2 回答 2

2

我不相信默认的构建模板可以部署单击一次应用程序。

您可以按照以下帖子中的步骤添加点击一次发布步骤 http://social.msdn.microsoft.com/Forums/da-DK/tfsbuild/thread/8aed666d-a1fd-4cf5-ad44-13d5827e1e58 虽然我建议将自定义步骤放在“签入门控...”步骤之后,以便更容易找到。

或者使用 Tfs Deployer (http://tfsdeployer.codeplex.com/) 之类的东西,它需要更多的设置时间,但部署构建更灵活。

单击一次的另一个指南http://www.edsquared.com/2011/10/27/Deploying+Visual+Studio+2008+ClickOnce+Projects+In+TFS+2010+Build.aspx

于 2011-11-22T07:48:24.927 回答
0

这是我在看到 Betty 的答案之前找到的解决方案。它为发布和清单文件设置了更多属性,并且有点复杂。我建议先尝试接受答案中的链接,因为它易于理解和应用。

http://thebasilet.blogspot.com/2010/10/tfs-2010-team-build-clickonce.html

于 2011-11-24T18:17:10.077 回答