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

时间:2013-12-11 11:52:56

标签: c# .net 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。 portable targets

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

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

更新

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

3 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:4)

在安装Portable Class Library Tools后,将所需的配置文件(在错误消息中明确指出)从开发计算机复制到构建服务器,允许我的构建工作。

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

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

<强>更新

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

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

答案 2 :(得分:3)

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