0
我做了一個C#.NET的DLL,我想從VBA運行而不註冊它。 我找到了解決方案there,它完美的工作,但只有當程序集是由Framework NET 3.5或更早的版本製作的。 使用Framework 4.0時,出現錯誤「此程序集由比當前加載的運行時更新的運行時構建,無法加載」.. 有人可以幫助我嗎?VBA C#DLL沒有註冊
我做了一個C#.NET的DLL,我想從VBA運行而不註冊它。 我找到了解決方案there,它完美的工作,但只有當程序集是由Framework NET 3.5或更早的版本製作的。 使用Framework 4.0時,出現錯誤「此程序集由比當前加載的運行時更新的運行時構建,無法加載」.. 有人可以幫助我嗎?VBA C#DLL沒有註冊
所以,我找到了解決方案。
默認情況下,Excel使用1.1框架,如here所述。 如果你看看在Windows註冊表中,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Policy\AppPatch\YOUR_FRAMEWORK_VERSION\excel.exe\
你可以看到有針對性的版本是V1.1 ..... 所以,解決的辦法是讓一個Excel.exe.config文件部隊框架版本4,如解釋here
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
</startup>
</configuration>
哦,親愛的,這不是一個有用的答案。它使用了.NET 1.0技術,該技術尚未允許確定要加載的CLR版本。從v4.0.30319文件夾中選擇tlb文件完成任何操作。它適用於3.5彙編是一個意外,今天常見,因爲大多數機器不再安裝.NET 1.x版本。如果真的存在,那就是你。不要這樣做。 –