Visual Studio 2010:无法parsingmscorlib目标框架“.NETFramework,版本= v4.0”

我们目前正在将所有解决scheme从2005年迁移到2010年(没错,我们正在跳过2008年!)。 我们也正在改变我们的文件结构,以便更有意义(一些常见的项目将嵌套在特定的项目等等)。

这一切意味着引用需要改变! 除此之外,我们也将它们全部设置为.NET 4.0。 为了做到这一点,我们已经在同一个解决scheme中使用了所有117个项目的临时“GOD”解决scheme。

我正在同一个同事这样做,直到大约两个小时前,一切都按计划进行。 然而,我们遇到了117个项目中的一个问题。 该项目拒绝“显示”项目属性中的引用,资源,服务和设置选项卡。

我得到以下确切消息:

无法为目标框架“.NETFramework,Version = v4.0”parsingmscorlib。 如果未安装目标框架或者框架名字对象格式不正确,则可能发生这种情况。

现在这很烦人,但情况变得更糟。 我的同事在从颠覆中获得同样的解决scheme时,实际上可以查看和更改引用和事物。 事实上,目前这个项目实际上是build立在他的机器上的。 他承诺进行修改,但是我不能build立这个特定的项目,或者看到参考文献。

这导致我得出简单的结论,我的客户有什么不同,这是造成麻烦! 我在网上看到的build议如下:

  • 安装了多个.NET4.0版本(我的客户端不是这种情况)
  • .NET v3.5没有安装; v4.0正在尝试构buildv3.5(我的客户端上安装了3.5)
  • 注册码:OnlyUseLatestCLR被设置并正在搞砸! (扫描我的registry,这个键不存在任何地方!)

请参阅: http : //connect.microsoft.com/VisualStudio/feedback/details/542789/

唯一我还没有尝试过,我可以做的是修复.NET 4.0如何,我非常怀疑这是问题,因为我们有大约100个其他项目,我可以编辑和构build得很好。 C#和VB.NET。

这可能是您的解决scheme的path太长。

http://wcfvs.blogspot.com/2011/04/could-not-resolve-mscorlib-for-target.html

当我有同样的问题,但没有参考问题时,我发现这个线程。 我find了上面的链接,它解决了我的问题。 希望这会帮助到这里来的人有同样的问题。

Microsoft Visual Basic for Applications Extensibility 5.3(VBIDE)是恶魔的名字!

显然这是我的同事有一个参考,但我没有,因为这个参考,一切都死了。 我们发现这个是因为如果你在特定项目(这是一个VB.NET项目)中select“显示所有文件”,你会得到甜蜜的References文件夹,这通常不是VB.Net项目的目录。 在Tab失败的地方,文件夹向我们显示了一个带有警告的引用。 显然这是编译器或VS2010无法告诉我的东西,但是正是我们搞砸了。

所以,如果在项目上工作时出现这个错误,请“显示所有文件”,以便查看参考文件夹,找出哪些参考可能导致您的问题!

我很高兴它发现了这个,但更多的3小时后! > <

今天早上我收到这个错误警告。 我刚刚重build项目,然后closuresVisual Studio,重新打开它,错误消失了。

我在我的项目上工作保存了工作,并closures了visual studio 2010.当再次打开工作时,我得到了这个错误,我只是closuresVisual Studio再次复制我的项目被保存的文件,我粘贴它somwhere其他(在我的桌面上的文件),我再次打开与VS2010的项目,它正在工作。

我有同样的问题,并尝试以上的大部分,包括重新安装.NET 4.0和重新启动仍然没有消失。

最终通过移动我的项目树下来解决它。 即。 靠近驱动器的根部。 原来目录和文件名太长,我相信引用被截断,因此无法解决。

问题马上就来了。

我今天有这个问题,解决scheme是手动手动编辑Resources.resx文件。

我的Resources.resx文件如下所示:

<data name="SomeString" xml:space="preserve"> <value>I am a string</value> </data> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <data name="MyLogo" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\MyLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> <data name="Open" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> 

原来,Visual Studio不喜欢<assembly> <data>元素后面的两个<data>元素,考虑到Visual Studio本身将它们添加到其中,这是很奇怪的。 在我将它们移动到<assembly>元素之前,我的问题得到了解决:

  <data name="SomeString" xml:space="preserve"> <value>I am a string</value> </data> <data name="MyLogo" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\MyLogo.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> <data name="Open" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\Open.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

在资源编辑器中发生在我身上。

原因:我正在导入一些.Targets文件,它定义了一个名为AppConfigFile的属性,它可能会覆盖一些同名的内部属性:

 <PropertyGroup> <AppConfigFile>...</AppConfigFile> </PropertyGroup> 

修复:将属性重命名为其他名称,问题就消失了。

从.NET 4.5到.NET 4.6.2时,我在Visual Studio 2013中遇到了这个问题。 问题项目是一个网站项目。

Visual Studio自动运行一些生成Reference.svcmap的工具。 Reference.cs从以下开始:

 //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // </auto-generated> //------------------------------------------------------------------------------ 

只要select新的.NET版本就会导致Visual Studio清除生成的文件,而不是将内容填满。 我尝试了以上所有的解决scheme,但没有工作。 最终我select了.NET 4.5.1,然后是.NET 4.6.2,并且该工具已经运行。 文件的差别只是在注释中的工具的版本号,所以我可以从GIT中恢复文件。

我在我的项目中遇到了与(web)服务引用相同的问题。 “ 更新服务引用 ”和“ configuration服务引用 ”都不起作用了。

那么让我们把(web)服务引用扔掉,然后重新创build它。 不行! 相同的错误讯息。

解决scheme:编辑项目文件并删除与服务引用有关的所有内容。

说明:

  • 转到解决scheme资源pipe理器,右键单击项目名称,然后select“卸载项目”。
  • 转到解决scheme资源pipe理器,右键单击项目名称,然后select“编辑YourProjectName.proj”
  • 删除与您的(web)服务引用有关的每个元素。 (通常它包含文本“服务引用”)
  • 转到解决scheme资源pipe理器,右键单击项目名称,然后select“重新加载项目”。
  • 现在再次添加你的(web)服务引用。

问题解决了(这是我的情况)。

我猜可能发生了什么:我在我的web服务的某个地方改了一个类。 界面没有改变,Visual Studio以某种方式没有看到更改(s)。 (caching?)configuration不再匹配,configuration/重build/删除(networking)服务失败。

检查项目属性中的目标框架设置是否正确 – 默认情况下是“.Net Framework 4.0客户端” – 可能需要“.Net Framework 4.0”

看到这个线程看起来像相同的问题

您也可能想要查看这篇文章 ,其中涉及使用reflection器debugging相同症状的问题

当源目录只读时,我遇到了同样的问题。 如果我将我的工作区与我们的版本控制服务器(Perforce)同步,它将使所有的目录只读,除非我select我检出目录进行编辑。 有时我懒惰,不要这样做,因为我是任何时候在这些项目中工作的唯一人。 但是这个错误消除了只读标志。

发生在我身上的事情是,我所有关于我的项目的引用都丢失了,所以我不得不再次插入它们。

对于我来说,只要设定Target Framework 4.0即可解决我的问题。 有时目标框架是不知何故的。 这可能会导致问题。

我今天遇到了这个问题,事实certificate是由于项目文件名太长造成的。

这反过来又是由一些服务引用引起的。 在导入或更新服务引用时,Visual Studio将生成.datasource文件,其中的文件名是完全限定的名称。 这意味着在某些情况下名字很长。

通过search,我发现提示删除这些文件是安全的。 检查这个或这一点 。

删除这些.datasource文件消除了这个问题。

我正在迁移一个vb.net项目到VS 2015.我也有同样的问题。 问题不在.Net框架,因为我能够创build一个新的项目针对特定的框架版本,并成功。

就我而言,该项目引用了FPSpreadADO和其他一些类似的库。 一旦我删除这些引用,它工作得很好。

XamarinForms PCL项目中有类似的错误。
我发现这个错误是关于项目的参考。 我将xamarin.forms更新为最新版本,由于某些原因,NuGet无法从项目文件(xml)中删除所有前一版本的引用。
所以,只是我从项目文件中删除了以下行,它的工作!

 <Error Condition="!Exists('..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets'))" /> 

希望它可以帮助别人…