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

Art*_*nes 16 .net c# silverlight teamcity portable-class-library

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

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"(您是否缺少程序集引用?)

构建服务器规范:

该解决方案是.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个配置文件的文件夹.

便携式类库工具是最新的吗?它似乎错过了为最新平台安装配置文件.

UPDATE

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

Rad*_*scu 14

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

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

  • 请注意,安装程序实际上并不安装文件,而是将ZIP文件放在主硬盘驱动器的某个位置(可能是`C:\ Program Files(x86)\ Microsoft .NET可移植库参考组件4.6`).您必须解压缩该文件,然后将其复制到服务器上的正确位置.对我来说,这是:`C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework\.NETPortable`.方便的提示,要创建文件夹,将其命名为`.NETPortable.,最后一段时间 - Windows将删除结束时段并允许您创建文件夹. (6认同)