.net - TeamCity WCF RIA 在构建期间缺少程序集

标签 .net teamcity wcf-ria-services .net-assembly

我无法让 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 包含这些文件?

最佳答案

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

要解决此问题,您可以执行以下三项操作之一。

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

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

关于.net - TeamCity WCF RIA 在构建期间缺少程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18655888/

相关文章:

reflection - 如何立即验证Silverlight 3 Datagrid中新插入的行?

c# - 使用 SQL Server Graph 2017 获取两个节点之间的所有路径

node.js - Node 长路径模块名称失败 teamcity 构建

.net - 构建自定义 "ClaimsAuthorizationManager"Windows Identity Foundation 类的好方法是什么?

github - 许多存储库已过时的微服务

sdk - 为什么 UIFont systemFontOfSize :weight not crash on iOS 8. 0?

silverlight - LightSwitch 'Microsoft-LightSwitch-Security-ServerGenerated-Implementation-AuthenticationService.svc' 不存在

c# - 如何以编程方式将 System.Windows.Controls.Parameter 绑定(bind)到 Silverlight 中的 ComboBox 的 SelectedItem

.net - 对int []数组的并发读取访问: Is it safe?快速吗?

.net - 您能区分 <%= %>、<%# %> 和 <%$ %> ASP.NET 表达式之间的区别吗?