.net 4.0 无法解析使用可移植类库的程序集

.net 4.0 无法解析使用可移植类库的程序集,.net-4.0,portable-class-library,.net 4.0,Portable Class Library,我在最终用户机器上遇到了汇编解析的问题,我相信这与使用可移植类库有关 我有一个最初在VisualStudio2010中编写的.NET4.0应用程序。最近我们升级到Visual Studio 2012,并创建了几个可移植类库项目。我认为我们现在不需要这些功能,但我们正在构建一个Windows8应用商店应用程序,它可能会从这些库中受益 当我编译我的项目时,portable library特性到底做了什么?我希望它允许我在不同的框架上运行它,而无需修改或重新编译 当我在reflector dotPee

我在最终用户机器上遇到了汇编解析的问题,我相信这与使用可移植类库有关

我有一个最初在VisualStudio2010中编写的.NET4.0应用程序。最近我们升级到Visual Studio 2012,并创建了几个可移植类库项目。我认为我们现在不需要这些功能,但我们正在构建一个Windows8应用商店应用程序,它可能会从这些库中受益

当我编译我的项目时,portable library特性到底做了什么?我希望它允许我在不同的框架上运行它,而无需修改或重新编译

当我在reflector dotPeek中查看库时,它显示的平台属性如下:

.NETPortable,版本=v4.0,配置文件=Profile5

参考文献似乎是2.0-ish:

mscorlib,版本=2.0.5.0

系统,版本=2.0.5.0

System.Runtime.Serialization,版本=2.0.5.0

在该最终用户的计算机上运行应用程序时,我在日志文件中看到一个错误:

无法加载文件或程序集“System.Core,Version=2.0.5.0…”

Google System.Core2.0.5.0似乎是指SilverLight,它似乎是目标框架之一

此计算机未安装Visual Studio,但安装了.NET 4.0(4.0.3更新)


是否有一些我应该以不同的方式编译的东西,我应该在依赖项中调查的东西,或者我应该在最终用户机器上安装的东西?2.0.5.0指的是什么?

对于.NET 4,您需要更新()才能使可移植类库正常工作。从:

功能5

对支持可移植库的更改。这些变化包括API 更新和活页夹修改。此更新使CLR能够绑定 成功复制到可移植库,以便单个DLL可以在 .NET Framework 4,在Silverlight、Xbox或Windows Phone上。 此更新将公共Silverlight API添加到.NET Framework 4中 同一地点。API签名将在整个系统中保持一致 站台。所有修改都是100%兼容的,并且将 不破坏任何现有的代码

另请参阅的“部署.NET Framework应用程序”部分


编辑:事实上,如果机器安装了您提到的.NET 4.0.3,那就足够了。你能仔细检查一下以确保它确实安装了吗?

2.0.5.0是PCL的目标版本,它会被框架重新映射。Profile5=框架4.0和存储。远景:商店应用程序需要.NET 4.5。注意4.0的客户端配置文件非常奇怪。我下载了(KB2600211于2012年4月3日发布),但当我执行它时,它说它被“阻止”或已经安装。我下载了KB2468871(发布于2011年8月6日),并能够顺利安装。该应用程序现在可以运行了。我仍然收到这个错误,两个更新都说“不适用于您的系统”。这是VS 2012。唉。看来编译器的PCLs有一些小故障,对于我的问题:,我们安装了一台安装了.NET 4.0.3的机器,但仍然遇到了这个错误。安装KB2468871修复了此问题。KB2468871不适用于Windows 8或8.1,但是我在Windows 8.1计算机上编译VS项目时发现了此问题。