[問題描述]
現在有兩個專案,一個是dll的專案,裡面有usercontrol,
另一個是dll(usercontrol)的測試專案,
兩個編譯平台都是Release x64。
在測試專案winform的designer中,
將dll中的Usercontrol元件拉到form上,
出現「Failed to load toolbox item. It will be removed from the toolbox」,如下圖
dll的編譯設定如下圖
測試專案的編譯設定如下圖
[思考邏輯]
參考資料[1]中有人提到
我才想起來,前一份工作時也遇到一樣的問題。
當時同事就有跟我說,.NET的dll中若有usercontrol,
一定要Any CPU或是x86才可載入windows form。
其實這個問題,不需要使用dll的方式也會發生,
將winform設成x64就會了。
上圖是在winform專案中建立了兩個usercontrol,
兩個拉進Form1中,都會發生相同的錯誤訊息!
[解決方法]
要將編譯平台改成「Any CPU」,
若是有相容x64需求,把x86的勾拿掉即可。
如果dll不允許Any CPU編譯平台為 ,只能使用x64編譯
那就只能用程式碼來加了
至於原因是,[2]
因為visual studio是32位元的應用程式,
無法載入x64的元件,所以才會有無法顯示的狀況。
參考資料:
沒有留言:
張貼留言