Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2010:无法解析目标框架的mscorlib';。NETFramework,版本=v4.0';_C#_.net_Visual Studio_Mscorlib - Fatal编程技术网

C# Visual Studio 2010:无法解析目标框架的mscorlib';。NETFramework,版本=v4.0';

C# Visual Studio 2010:无法解析目标框架的mscorlib';。NETFramework,版本=v4.0';,c#,.net,visual-studio,mscorlib,C#,.net,Visual Studio,Mscorlib,我们目前正在将所有解决方案从2005年迁移到2010年(没错,我们跳过了2008年!)。我们也在改变我们的文件结构以使其更有意义(一些常见的项目将嵌套在特定的项目中等等) 这都意味着引用需要更改!除此之外,我们还将它们全部设置为.NET4.0。为了实现这一点,我们制作了一个临时“上帝”解决方案,在同一个解决方案中包含所有117个项目 我和一个同事一起做这件事,直到大约2小时前,一切都按照计划进行。然而,我们在117个项目中遇到了一个问题。此项目拒绝在项目属性中“显示”其引用、资源、服务和设置选项

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

这都意味着引用需要更改!除此之外,我们还将它们全部设置为.NET4.0。为了实现这一点,我们制作了一个临时“上帝”解决方案,在同一个解决方案中包含所有117个项目

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

我得到的确切信息如下:

无法解析目标的mscorlib 框架 “.NETFramework,版本=v4.0”。这个可以 如果目标框架不是 已安装或如果框架名字对象 格式不正确

现在这很烦人,但情况变得更糟了。我的同事在从subversion获得相同的解决方案时,实际上可以看到并更改引用和内容。事实上,目前这个项目实际上是建立在他的机器上的。他提交了更改,但我无法构建此特定项目,也无法查看引用

这让我得出了一个简单的结论,我的客户身上肯定有什么不一样的地方,这会带来麻烦!我在网上看到的建议如下:

  • 已安装多个.NET4.0版本(我的客户端上不是这种情况)
  • 未安装.NET v3.5;v4.0正在尝试构建v3.5(我的客户端上安装了3.5)
  • 注册表键:onlyselatestclr已设置,正在把事情搞砸!(扫描了我的注册表,该注册表项不存在!)
见:


唯一一件我还没有尝试过的事情就是修复.NET4.0。然而,我非常怀疑这是一个问题,因为我们还有大约100个其他项目,我可以编辑和构建它们。C#和VB.NET。Microsoft Visual Basic for Applications Extensibility 5.3(VBIDE)是魔鬼的名字

显然,这是我的同事不知怎的引用过的,但我没有,因为这个引用,所有的东西都死了。我们发现这一点是因为,如果您选中特定项目(这是一个VB.NET项目)上的“显示所有文件”,您将获得sweet References文件夹,而VB.NET项目通常不在该文件夹中。在选项卡失败的地方,文件夹向我们显示了一个带有警告的引用。显然,这是编译器或VS2010无法告诉我的,但正是我们把事情搞砸了

因此,如果您在处理项目时遇到此错误,“显示所有文件”,这样您就可以查看References文件夹,并找出哪些引用可能导致您的问题


我很高兴它在3个多小时后找到了这个!!> 检查项目属性中的目标框架是否设置正确-默认情况下这是“.Net framework 4.0客户端”-您可能需要“.Net framework 4.0”

看,这看起来是同一个问题


您可能还想查看与使用reflector调试具有相同症状的问题相关的问题,可能是解决方案的路径太长:

意思是:

C:\MyProject\Folder\SubFolder

应在“256字符”以下


我发现这个线程时,我有相同的问题,但没有参考问题。我找到了上面的链接,它解决了我的问题。希望这能帮助其他有同样问题的人。

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

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

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

...

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

我在我的项目上工作,保存了工作并关闭了visual studio 2010。当再次打开以进行工作时,我遇到了此错误。我刚刚关闭visual studio,再次复制了保存项目的文件,并将其粘贴到其他位置(在桌面上的一个文件中),然后我使用VS2010再次打开项目,项目开始工作。

我遇到了同样的问题,在尝试了上述大部分操作后,包括重新安装.NET4.0和重新启动仍然没有消失

最终通过将我的项目树向下移动解决了这个问题。更靠近驱动器的根部。结果是目录和文件名太长,我认为引用被截断,因此无法解析


问题马上就出现了。

当源目录为只读时,我也遇到了同样的问题。如果我将我的工作区与版本控制服务器(Perforce)同步,那么默认情况下,它将使所有目录都为只读,除非我选择签出该目录进行编辑。有时我很懒,不这样做,因为我是唯一一个在任何时间从事这些项目的人。但是这个错误会消失,请清除只读标志。

我今天遇到了这个问题,解决方法是手动编辑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>

我是一根绳子
..\Resources\MyLogo.png;System.Drawing.Bitmap,System.Drawing,版本=2.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a
..\Resources\Open.png;System.Drawing.Bitmap,System.Drawing,版本=2.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a
事实证明,VisualStudio不喜欢
元素之后的两个
元素,考虑到VisualStudio自己将它们添加到了那里,这很奇怪。在将它们移到
元素之前后,我的问题得到了解决:

  <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" />

我是一根绳子
..\Resources\MyLogo.p
//------------------------------------------------------------------------------
// <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>
//------------------------------------------------------------------------------
<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'))" />