2011-10-19 137 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