我正在使用Visual Studio 2012和.Net Framework 4.5 我有2個解決方案:1)WPF應用程序2 )類庫(dll)混合模式程序集是針對運行時版本「2.0.50727」構建的,無法在4.0運行時加載
類庫包含3個按鈕和一個控件,它必須在WindosFormsHost控件中,因爲它是爲WinForms生成的。
.NET框架之外唯一引用的程序集是用於上述winforms控件和iTextSharp。
的的WinForms控制似乎是有點老,當我把我的DLL參考我得到了同樣的錯誤作爲標題,但下面的其他SO問題/答案,我我把這個在我的配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
錯誤:
混合模式組件被構建針對運行時的版本「V2.0.50727」和不能在運行時4.0無需額外的配置信息被加載
正如我所提到的,我看過發佈這個問題的問題,並且他們確實在我的DLL項目中解決了這個問題,但是在使用該DLL的項目中,我嘗試了所有這些都無濟於事。供參考:
- What 'additional configuration' is necessary to reference a .NET 2.0 mixed mode assembly in a .NET 4.0 project?
- Mixed mode assembly is built against version ‘v2.0.50727′ of the runtime
- What does 'useLegacyV2RuntimeActivationPolicy' do in the .NET 4 config?
- Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime
- Mixed mode assembly is built against version X and cannot be loaded in version Y of the runtime without additional configuration information
在該項目中我的配置文件具有相同的值完全相同的標籤。
另外需要說明的是,在我的WPF應用程序中,一開始我得到一個關於它無法找到指定的dll(用於winforms控件)的錯誤,最後我將該控件的dll放入了GAC。
我試着改變我的目標框架的所有可能性(4.5,4.0完整和客戶端,3.5完整和客戶端,3.0和2.0),在調試和發佈中構建我的DLL並設置「生成序列化程序集」關閉,並且將平臺目標從任何CPU更改爲x86和x64。我只嘗試每次更改一個設置的值。
這是VS2012中的問題還是我需要做些什麼來解決這個問題?
編輯:
顯示在錯誤列表設計時上述錯誤,設計者展示一個錯誤說「無法創建‘my_class’的實例」
的是內部異常一個說:「設置connectionId拋出一個異常」,這是標題消息的內部例外。
這仍然使該解決方案,將建成並在運行的應用程序,我得到基本相同,不同之處在於最裏面的異常說:
「無法加載文件或程序集「SigPlusNET,版本= 1.1 .3358.14336,Culture = neutral,PublicKeyToken = 6aef07010bb0624f'或它的一個依賴項,試圖加載一個格式不正確的程序。「
那一個是的WinForms控件的程序,在通過dotPeek檢查,它具有唯一的依賴是.NET框架的人
右鍵單擊您的EXE項目,屬性,調試選項卡,取消選中「啓用Visual Studio託管過程」選項,然後重試。 –
我沒有在我的問題中提到這一點,但是我在設計時將這個控件從工具箱中拖出來(程序在運行時崩潰),我將編輯我的問題並添加Exception i get在運行時 –
您剛剛在編輯中發佈的第二個錯誤是因爲SigPlusNET(或其使用的東西)是錯誤的目標平臺。無論是你的應用程序是32位和SigPlusNET(或依賴項)是64位,或其他方式。 –