我有许多WCF Web服务,我试图将其部署到TFS Build上的目录结构中。项目结构如下所示:
Services Directory (svc.sln)
- Project1 (project1.csproj)
- Project2 (project2.csproj)
- Project3 (project3.csproj)
- ServicesProject
- Project1
- Project1.svc
- Project2
- Project2.svc
- Project3
- Project3.svc
- bin
- Project1.dll
- Project2.dll
- Project3.dll
因此,为了在我的桌面上部署它,我只需加载ServicesProject.csproj,发布,选择一个发布配置文件,它将很乐意发布到一个目录(准备复制到IIS)。
然后我尝试使用参数
将其添加到TFS构建中/p:DeployOnBuild=true /p:PublishProfile=MyPublishProfile
我收到了一个错误,说:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "bin\Project1.dll" because it was not found.
我看了一下代理构建目录,果然,那里只有一个dll(ServicesProject.dll)。然后我更改了构建以构建svc.sln,但我仍然得到相同的错误。我检查了sln文件的构建顺序,它最后有ServicesProject,但是,日志文件表明它是第二个构建的。
我提供了如此多的细节,以防这个问题的答案在于我所采取的方法,而不是我实际所做的具体细节。
我的问题是:我是否正确地执行此操作,如果是这样,为什么sln文件的构建顺序错误。有没有更简单的方法来实现这一目标?
答案 0 :(得分:1)
我建议任何来自TF Build的部署都是错误的实现方法。您应该选择自动输出网站,并使用版本管理进行部署。
http://nakedalm.com/create-release-management-pipeline-professional-developers/
RM内置于TFS中,但您需要单独安装它,并允许您使用PowerShell创建部署。部署和配置您的网站非常容易,在帖子中您可以看到切换变量也很简单。
比试图将部署变成构建工具更容易。