C# 在生成服务器中生成可移植类库项目失败
我最近向构建服务器中构建的应用程序添加了一些自定义可移植类库项目。构建工作正常,但之后它停止工作并向我显示以下消息: 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” 命名空间“System”(是否缺少程序集引用?) 生成服务器规范:C# 在生成服务器中生成可移植类库项目失败,c#,.net,silverlight,teamcity,portable-class-library,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\v
- Windows Server 2008 R2标准
- TeamCity 8.0.4
- .NET 4.5
- (根据建议)
我将开发机器的“.NETPortable\v4.0\Profile\Profile136”复制到构建服务器,现在应用程序成功构建。我仍然想知道为什么安装可移植类库工具不能开箱即用。Profile136附带了作为Phone SDK 8.0一部分的可移植类库目标包(或VS 2012的更高版本VS更新)。您使用的目标软件包版本较旧 安装后,将所需配置文件(在错误消息中明确显示)从开发人员计算机复制到生成服务器,允许我的生成工作 显然,现在的可移植类库并不包括最新的可移植概要文件 如果有人知道在构建服务器上获取可移植配置文件的最新方法,而不是安装VS或手动复制它们,我真的很想知道 更新 在我的开发人员计算机上,要复制到服务器计算机的文件夹的路径(服务器中的路径相同):
一个更通用、更优雅的解决方案是安装最新的Microsoft.NET可移植库参考程序集。这将安装profile138和其他许多工具 可以在以下位置找到独立安装程序:
- :
C:\Program files(x86)\Microsoft.NET Portable Library Reference Assembly 4.6
)。您必须解压缩该文件,然后将其复制到服务器上的正确位置。对我来说,这是:C:\ProgramFiles(x86)\Reference Assembly\Microsoft\Framework\.NETPortable
。方便提示,要创建文件夹,请将其命名为.NETPortable.
并在结尾处加上句点-Windows将去掉结尾的句点并允许您创建文件夹。@Cody有效!但我最终还是从我的开发机器上复制了它,而不是下载。我必须补充:我检查了更多目标:.NET4.5、Windows8、ASP.NETCore1.0、WindowsPhone和一些Xamarin的东西。我只将.NETPortable和.NETCore复制到生成服务器。这里有一些额外的下载链接:@Cody是这里真正的MVP。我已经安装了那个该死的4.6更新一百次了,但它从来没有把任何东西放在那个.NETPortable路径中。Wtf必须解压到那个目录中,这是疯狂吗?有没有记录在案?
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\Profile\Profile136