在TFS Build中部署WCF Web服务

时间:2015-02-02 16:40:13

标签: wcf iis tfs tfs2013

我有许多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文件的构建顺序错误。有没有更简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

我建议任何来自TF Build的部署都是错误的实现方法。您应该选择自动输出网站,并使用版本管理进行部署。

http://nakedalm.com/create-release-management-pipeline-professional-developers/

RM内置于TFS中,但您需要单独安装它,并允许您使用PowerShell创建部署。部署和配置您的网站非常容易,在帖子中您可以看到切换变量也很简单。

比试图将部署变成构建工具更容易。