有一個引用託管C++庫的C#項目解決方案,該C++項目又引用了本機C++庫。 C#項目包含擴展它的BaseUserControl和ChildUserControl。VS2012 Designer無法加載程序集
問題是:如果在BaseUserControl的構造函數中調用本地C++代碼(通過託管C++庫),則不能在設計器視圖中查看ChildUserControl;也不能將BaseUserControl或ChildUserControl添加到表單中。我們得到以下錯誤:
Could not load file or assembly 'TestLibCPP, Version=1.0.4877.30347, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
我們該如何解決這個問題?
我已經包括一個simple VS2012 solution,它演示了這個問題。這是一個人爲的例子,它基於我們正在用最近從VS2005轉換到VS2012的大型代碼庫的問題。
感謝
這是不可避免的,Windows需要能夠找到本地DLL當設計師加載它。它看起來很少的地方,將其存儲在PATH目錄將是必需的。非常脆弱。最好將DLL分成兩部分。 – 2013-05-09 17:42:32
有沒有人有沒有涉及32位編譯的答案?我提供了賞金,因爲我們有這個問題的64位應用程序。編譯32位內容不是一種選擇。 – 2013-11-01 15:20:04
ups剛剛看到了子問題...爲什麼不簡單地將C++ dll改爲x64。這樣您就可以將C#部件留在任何目標。用給出的例子對它進行測試,它就像一個魅力 – zewa666 2013-11-01 21:43:16