【问题标题】:Deploying a WCF Web Service inside a TFS Build在 TFS 构建中部署 WCF Web 服务
【发布时间】:2015-02-03 03:56:58
【问题描述】:

我有许多 WCF Web 服务,我正在尝试将它们部署到 TFS 构建上的目录结构中。项目结构如下所示:

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

【问题讨论】:

    标签: wcf iis tfs


    【解决方案1】:

    我建议任何来自 TF Build 的部署都是错误的实现方式。相反,您应该寻找自动输出网站,并使用发布管理进行部署。

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

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

    比尝试将部署硬塞到构建工具中要容易得多。

    【讨论】:

    • 谢谢你 - 我不知道 RM。话虽如此,它并没有解决我的问题。无论是否以正确的方式部署,构建仍然失败(即使我取出 MSBuild 参数)。
    • 您在 bin 文件夹中签入了 dll 吗?因为如果你需要从源中删除它们...
    • 不,二进制文件不受源代码控制
    • 您是否有任何直接指向 Bin 文件夹中的 DLL 而不是项目引用的引用?
    • 感谢这位 Martin - 原来是这样。我现在正在安装 RM...虽然我注意到它仅适用于高级许可证。
    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2013-09-10
    • 2013-11-26
    • 2014-03-26
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多