我在Windows 8机器上构建一个合并的DLL来定位.net4.0时遇到了一些问题。我可以在VS2012中成功构建单独的.net4.0 dll,所以我没有这个问题:
Targeting .NET 4.0 in VS 2012 on Windows 8
我遇到了以下优秀博客文章,讨论了我的问题:
还有:
Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib
表示我在合并期间使用以下语法:
/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"
不幸的是在Windows 8中我没有这个目录。我可以想到以下可能的解决方案,但有兴趣知道是否有人已经解决了这个问题。
答案 0 :(得分:1)
我也在使用Windows 8和VS 2012,但没有遇到过这个问题(当然,其他一些人也很好)。很简单,可能只是安装了v3.5或v4.5,这意味着您需要安装v4.0框架(如果您已经尝试过,请再次安装)。
我还发现你提供的文件夹路径没有带我到我的电脑上,但是这条路径确实存在;
C:\Program Files\Reference Assemblies\Microsoft\Framework\
您可以在PC上尝试该路径,看看那里是否有v4.0文件夹。
答案 1 :(得分:1)
非常感谢您的评论和反馈。一个工作(hacky)解决方案是执行以下操作:
C:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0
。C:\Windows\Microsoft.NET\Framework\v4.0.30319
的内容然后我能够使用以下内容正确引用Windows 8中的.net4.0程序集:
/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0"
测试工作正常。