Common Language Runtime在Visual Studio中检测到无效程序

时间:2009-10-30 22:23:02

标签: .net visual-studio clr

我一直在使用Visual Studio 2008,但最近我在使用C#开发应用程序时收到此消息:

  

公共语言运行时检测到无效程序

当我尝试输入组件的属性(文本蒙版框属性,工具箱属性等)时会发生这种情况。但是,当我尝试推出另一个我从微软开发者的5星级程序中下载的解决方案时,它确实成了一个问题,而且它根本不允许我启动,只是遇到了同样的问题......

我在谷歌寻找答案,但只是得到了一些线索,关于人们有相同的模糊错误,但在不同情况下,如在ASP.NET

我很感激这个问题的任何帮助... :(我不想重新安装VS,这将是我的最后一个资源......

更新

我从未弄清楚问题是什么,所以我安装了一台带有Windows XP的虚拟机,我只有Visual Studio和Netbeans。

16 个答案:

答案 0 :(得分:8)

我通过尝试调用System.Management.Automation.Runspaces.RunspaceFactory.CreateRunspace()来解决此问题 对于这种情况,解决方案是编辑项目文件并确保对相关组件的引用完全如此:

<Reference Include="System.Management.Automation" />

引用此装配的其他方法,通过VS 2012装配拾取器并将装配体选择到参考装配体的物理位置。

答案 1 :(得分:5)

您是否可以在不引用任何额外装配的情况下在新解决方案中重现问题?如果是这样,我认为重新安装将是你最好的选择。遗憾!

答案 2 :(得分:5)

我从未在网上找到过这个问题的解决方案。但是为我修复它的是在Visual Studio中使用“清洁解决方案”选项。

似乎VS在某种程度上变得有点'肮脏'。

答案 3 :(得分:4)

只有你必须从

中删除临时的asp.net文件
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files

然后在asp.net中运行你的解决方案。现在它将正常运行。

答案 4 :(得分:3)

我遇到过这个错误。 Peverify帮助找到了源 - 它是一个方法组调用synthax。去图。

答案 5 :(得分:1)

在阅读Microsoft的故障排除指南之前,请尝试使用“清洁解决方案”。

答案 6 :(得分:1)

可以使用具有与x86或x64不同的CPU目标的引用程序集到Visual Studio中打开的解决方案中指定的目标。

如果可以重新编译程序集,请将引用程序集的目标设置为与打开解决方案相同的cpu类型以解决此问题。

我的情况是在x64 cpu上运行,目标为x86,用于我的解决方案,以及引用的程序集,其CPU目标为Any。

答案 7 :(得分:1)

嗯,(对我来说),经过一个小时的调查后,我设法解决了这个问题。

在VB.NET(v4.0 VS-SP1)中,我发现了一个错误,编译器没有抛出错误也没有智能感知:

请注意,如果我在函数中添加以下行(程序中的任何位置,类/模块/表单/等):

MyGraphics.DrawImage(OriginalImage.Clone(New System.Drawing.Rectangle(ClipX1, ClipY1, ClipW, ClipH), Drawing.Imaging.PixelFormat.Format24bppRgb), 0, 0, TempWidth, TempHeight)

编译器引发此错误甚至击中而调试功能之前,它甚至不到达线(只是增加了functoin,导致害怕甚至在进入该函数的编译器)。

我从我的代码中的另一个函数复制了这一行,现有的函数运行正常,但是新函数没有。说实话,这真是令人震惊。

现在,我再次双重检查,发现原因,作为OriginalImage对象被定义为Bitmap在然而这是工作,代码,我将它定义为一个{{1}在那个没有用的那个。

我进一步去了代码线的上方,并检查了参数/参数,上面的“克隆”函数取,从Image实例的一个具有正确的,并用3个变种(即3个不同组的参数但是,对于Bitmap类型实例,Image不带参数!

我很shoekd看到这一点,问题是,我没有得到任何错误,也没有在智能感知警告,也没有编译器错误,精编的代码,但功能无法执行,我相信这是.NET中的错误(Ahem ... a Feature)。

修复它是将Clone更改为system.drawing.Image,之后的代码已经过了。

我希望这会有所帮助

亲切的问候 海德

答案 8 :(得分:0)

我的一位同事遇到了他的工具箱最终损坏的问题。尝试打开工具箱,右键单击,然后选择“重置工具箱”。你永远不会知道。

答案 9 :(得分:0)

重启我的机器为我解决了这个问题。似乎有很多关于这个问题的引用,它讨论了方法大小和局部变量数量的限制。这只是.net framework 2.0或更低版本的情况。所以,最好的办法是清理,重建,重启或最后重新安装Visual Studio。根据我的经验,它更像是一个“卡住/腐败”的Visual Studio。

答案 10 :(得分:0)

这是一个老问题,但我也遇到了这个问题。

对我而言,我只是想尝试使用无类型对象而不是强类型变量。我在我的ASP.net项目属性中修改了选项严格,并修复了弹出的所有投射错误,现在它完美运行。

在重新安装VS之前您可能想要尝试的东西,或者其他人提到的其他更耗时的措施之一。

答案 11 :(得分:0)

我通过正确使用ADDHANDLER的HandlerObject参数中的对象解决了这个完全虚假(或至少是误导性的)错误消息......我错误地在其中放了一个类名!

答案 12 :(得分:0)

另一个可能的原因是:在单元测试中实现Microsoft Fakes时出现此错误。在我添加我要为其生成的命名空间之前,我开始手动设置的.fakes xml文件之一看起来像这样:

<StubGeneration>
  <Clear/>
</StubGeneration>
<ShimGeneration>
  <Clear/>
</ShimGeneration>

没有运行任何测试,当我使用此Fakes设置调试项目中的测试时,我得到公共语言运行时检测到无效程序消息。我拿出了<Clear/>之一,一切都变成了神奇的彩虹和独角兽。

答案 13 :(得分:0)

安装AppDynamics后,我遇到了同样的问题。 解决方案是卸载AppDynamcis。

我们正在使用.NET远程处理来调用Web服务。 (遗产项目)

答案 14 :(得分:0)

我最终做的是删除优化和整数溢出检查。删除同一对话框中的跟踪和调试复选框允许它对我有效。

答案 15 :(得分:0)

我正在使用Visual Studio 2012,并且在vb.net中有大量项目。 在网格中创建列期间,我在PC中也遇到同样的问题。

我只是清理我的项目并重新构建它,然后运行起来就很顺利。

谢谢