2011-10-19 94 views
7

我有一个针对.Net框架3.5版本的C#应用​​程序。当安装.Net framework 3.5时,二进制工作正常。 但它给一些不兼容的isssues与.NET 4.0.Net框架不兼容问题

我看到以下异常:

的方法捕捉到异常:在InitializeComponent行:0柱:0异常:无法加载文件或程序集“ WindowsFormsIntegration,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。该系统找不到指定的文件。

+6

您在目标计算机上是否有框架4.0客户端或全部? – Marco

+0

多台计算机上的错误是否一致? –

+1

另外,*理想*你的代码应该明确使用.NET 4.0的该版本的dll –

回答

3

我认为所有您需要的信息来解决这个已经被张贴在评论,但是总结:

你真正需要的是在发布异常的信息(重点煤矿):

无法加载文件或程序集“WindowsFormsIntegration程序,版本= 3.0.0.0

它试图加载的.Net 3.0版本的WindowsFormsIntegration.dll,但无法找到该文件(或其依赖项之一)大概是因为.Net 3.0框架未安装在客户机上。请注意,.Net v4.0框架独立于以前版本的.Net框架 - 即使存在.Net framework v4.0,也无法保证.Net framework v3.0可以在机器上使用。

如果您安装.NET Framework 3.0版那么你的程序应该再次工作(不包括其它问题),但是真的如果你是靶向的.NET 4.0框架,你应该引用.NET 4.0版本的WindowsFormsIntegration.dll。只需删除现有的引用,并添加另一个引用到.Net 4.0版本。

注:“特定版本”属性是一个编译器时间设置,可让Visual Studio在运行时无法访问正确版本的情况下构建,但此设置无效 - 正确版本的组件必须存在。请参阅What you need to know about referenced assemblies in VS2005

+0

+1:.Net 4.0不包含3.5。但是,我相信最好的方法是在目标上安装3.5,而不是试图将其应用程序转换为4.0 – NotMe