显示表单时VB.Net Visual Studio错误

时间:2009-12-20 18:26:57

标签: vb.net

显示表单时出现以下异常:

  

InvalidOperationException未处理

     

混合模式程序集是针对运行时的版本“v2.0.50727”构建的,如果没有其他配置信息,则无法在4.0运行时加载。

alt text http://img69.imageshack.us/img69/2599/captureya.png

不知道为什么这不起作用。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

我还没有看到LoginForm的代码。但我认为您需要设置app.config标志以回退到.NET 2.0时代绑定...

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
</startup>
  

首先,什么是混合模式组件?一个   混合模式组件是一个组件   包含托管(CIL)和   非托管(机器语言)代码。   因此,他们无法携带   其他CPU指令集,就像   正常的C和C ++程序和   库。

     

接下来,为什么要使用它们?首要的   混合模式组件的目的是   作为“胶水”,例如使用C ++库   class作为托管的基类   类。这允许托管类   允许扩展非托管方法   托管代码是多态的   关于现有的非托管   功能。这非常有用   很多情况。然而,作为一些东西   这样做涉及扩展C ++   类,它需要编译器   了解C ++编译器ABI的全部内容   (名称修改,虚函数表   生成和放置,例外   行为),从而有效   需要本机代码。如果基地   class在一个单独的.dll中,这个   还需要混合模式   程序集将本机.dll列为   依赖,以便本机库   也是在装配时加载的   加载。

     

混合模式的另一件事   程序集支持的能力   导出新的C函数使其他   程序可以通过LoadLibrary()来实现   assembly和GetProcAddress   导出C函数。

     

这两种功能都需要   那个共享的库加载器   平台支持Portable Executable   (PE)文件,因为程序集是PE   文件。如果共享库加载器   支持PE文件,然后加载器即可   确保装配时   加载,所有列出的依赖库   也加载(案例1)或那   原生应用程序将能够加载   汇编就好像它是一个本机DLL   并解决DLL入口点   它

Source

答案 1 :(得分:0)

我遇到了这个问题,尝试了上面的答案但是没有用。

经过多次阅读和试错,没有发现任何有效的东西,我注意到我已经导入了Mysql dll并将它们添加到属性中。删除导入语句后,它工作了。

我知道它正在删除import语句,因为我在我尝试的每次更改之间进行了测试。

希望能有所帮助。