3

我无法让 Teamcity 构建我的 WCF RIA + Silverlight 5 应用程序。问题是构建命令 (csc.exe) 中缺少程序集。csc.exe 命令的参数不包括所需的程序集:

Microsoft.ServiceModel.DomainServices.Hosting.dll
Microsoft.ServiceModel.DomainServices.Tools.dll
System.ServiceModel.DomainServices.EntityFramework.dll
System.ServiceModel.DomainServices.Hosting.dll
System.ServiceModel.DomainServices.Hosting.OData.dll
System.ServiceModel.DomainServices.Server.dll

其他所有组件都正确包含在内。在 .csproj 文件中正确列出了提到的程序集。文件存在于系统中的正确目录中。

谁能告诉我如何让 TeamCity 包含这些文件?

4

1 回答 1

0

这可能不是特定的 TeamCity 问题,而是 CI 问题。当您推送/提交或源代码控制支持的任何内容时,您的 CI 服务器会获取更改。然后它会提取最新的代码并尝试编译它。如果您的源代码管理不包含所有正确的程序集,并且无法通过从 NuGet 获取或通过查看 GAC 找到这些程序集,则代码将无法编译。

要解决此问题,您可以执行以下三件事之一。

  1. 确定您需要的程序集,在本地开发机器上找到它们,将它们添加到源代码控制库文件夹并更改解决方案项目以从那里引用程序集。
  2. 如果您使用的是 NuGet,请查看 Nuget 是否提供您想要的程序集(在此处尝试:https ://www.nuget.org/packages/RIAServices.Server/ )
  3. 将缺少的程序集安装到 CI 服务器上的 GAC 中(并构建代理)

如果您不使用 NuGet,那么 1 是最佳选择。3 是最糟糕的选择,因为您的 CI 服务器现在很脏。您在 CI 上安装的越多,它就会变得越脏。这里的重点是,如果您的 CI 服务器上有允许编译构建的组件,您将不会知道当您尝试将产品发布到实时服务器上时可能会丢失组件。

于 2013-09-06T14:22:40.520 回答