我在MSDN上發佈了這個問題,但是通過與MS支持溝通有點浪費時間,他們每天只給你一句話,沒有任何線索:(無論如何,這裏是我的問題,欣賞任何評論。如何加載在GAC中註冊的混合程序集?
我在我的互操作的項目經歷組件加載問題
即有3個VS項目:
A是原生的C項目,通過靜態綁定,即A引用b都會調用B的功能,如果你like;
B是一個CLI包裝器,它依次靜態引用C的對象;
C是一個純粹.NET代碼的CS項目。
B和C與強名稱簽名,和他們的AssemblyInfo.cs和AssemblyInfo.cpp文件與它們的密鑰文件進行更新。
B和C都在GAC中註冊,使用gacutil.exe V4.0。 A從B.dll註冊的文件夾引用B.dll,B在C註冊的同一forlder中引用C.
當我運行從A程序,它失敗消息:
「的計劃,因爲B.DLL從您的電腦丟失,可能會無法啓動。嘗試重新安裝>該程序來解決這個問題'。
我可以使它工作的唯一方法是將B.dll複製到A.exe的同一個文件夾中。看起來好像是從GAC加載的C.dll。
在加載透視圖中混合裝配以不同方式工作嗎?
順便說一句,它不工作複製本地選項true或false。 – user1821130
你'gacutil''d B?你不需要'regsvr32'嗎,因爲它需要從非CLI程序訪問? – CodeCaster
感謝CodeCaster。這是一個我沒有想到的好點,實際上B不需要在GAC中,只要它被PATH覆蓋,所有工作都按預期工作。 – user1821130