在构建服务器中构建可移植类库项目失败

我最近将一些自定义的可移植类库项目添加到构建服务器中构建的应用程序中。 构建工作正常,但在此之后它停止工作并向我显示以下消息:

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(983,5):警告MSB3644:框架“.NETPortable,Version = v4.0,Profile = Profile136”的引用程序集不是找到。

C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets(1578,5):警告MSB3270:正在构建的项目的处理器体系结构“MSIL”与处理器体系结构之间存在不匹配引用“C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ mscorlib.dll”,“AMD64”。

错误CS0234:命名空间“系统”中不存在类型或命名空间名称“Linq”(您是否缺少程序集引用?)

构建服务器规范:

  • Windows Server 2008 R2 Standard
  • TeamCity 8.0.4
  • .NET 4.5
  • 便携式类库工具 (如此处所建议)
  • Silverlight 5 SDK

该解决方案是.NET 4.0应用程序,可移植项目仅针对.NET4.0 + e Silverlight 5。 便携式目标

我检查了我的开发机器(Windows 8,Visual Studio 2012)。 确实有一个文件夹“C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETPortable \ v4.0 \ Profile \ Profile136”(事实上,.NET 4.0的配置文件最多可达158)。 但是,在构建计算机中,只有最多131个配置文件的文件夹。

可移植类库工具是最新的吗? 它似乎错过了为最新平台安assembly置文件。

UPDATE

我将开发机器的“.NETPortable \ v4.0 \ Profile \ Profile136”复制到构建服务器,现在应用程序已成功构建。 我仍然想知道为什么安装Portable Class Library Tools不能开箱即用。

更通用和更优雅的解决方案是安装最新的Microsoft .NET可移植库参考组件。 这将在许多其他人中安装profile138。

独立安装程序可在以下位置找到:

  • 4。6 (2014年6月) :

在安装可移植类库工具之后,从开发机器到构建服务器复制所需的配置文件(在错误消息中显式)允许我的构建工作。

显然,现在的可移植类库不包含最新的可移植配置文件。

如果有人知道在构建服务器上获取可移植配置文件的更新方法,除了安装VS或手动复制它们之外,我真的很想知道。

UPDATE

我的开发机器上的路径,用于复制到服务器计算机的文件夹(服务器中的路径是相同的):

 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\Profile\Profile136 

Profile136附带了可移植库目标包的版本,该版本是Phone SDK 8.0(或更高版本的VS Update for VS 2012)的一部分。 您使用的定位包版本较旧。