我们有一个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浏览。)
我一直在努力解决这个问题。我找到了许多“近距离”的问题和解决方案,但没有一个对我有用。例如:
受到启发 What's the simplest possible way to deploy a WPF application?,我在构建工作流程中添加了一个“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除了我使用的是IIS 7和Windows Server 2008之外,这几乎与我的问题相同。
那么,如何在构建之后让TFS部署WPF应用程序?
答案 0 :(得分:2)
我不相信默认构建模板可以部署一次应用程序。
您可以按照以下帖子中的步骤在发布步骤后添加点击 http://social.msdn.microsoft.com/Forums/da-DK/tfsbuild/thread/8aed666d-a1fd-4cf5-ad44-13d5827e1e58虽然我建议在“Check in Gated ...”步骤之后放置自定义步骤,以便更容易找到。
或者使用像Tfs Deployer(http://tfsdeployer.codeplex.com/)这样的东西,它需要更多的设置,但是在部署构建时更灵活。
的另一个指南答案 1 :(得分:0)
这是我在看到贝蒂回答之前找到的解决方案。它为发布和清单文件设置了一些属性,并且有点复杂。我建议首先在接受的答案中尝试链接,因为它很容易理解和应用。
http://thebasilet.blogspot.com/2010/10/tfs-2010-team-build-clickonce.html