我们有一个
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应用程序?
最佳答案 我不相信默认的构建模板可以部署一次应用程序.
您可以按照以下帖子中的步骤在发布步骤后添加单击
http://social.msdn.microsoft.com/Forums/da-DK/tfsbuild/thread/8aed666d-a1fd-4cf5-ad44-13d5827e1e58虽然我建议在“Check in Gated …”步骤之后放置自定义步骤,以便更容易找到.
或者使用像Tfs Deployer(http://tfsdeployer.codeplex.com/)这样的东西,它需要更多的设置,但是在部署构建时更灵活.