2014-03-05 53 views
0

我有一個Windows窗體應用程序編譯和運行完美。資源異常DLL中

我已經通過創建一個新的DLL項目並將現有的窗體和類鏈接到新項目將其轉換爲DLL。

DLL項目編譯,但在運行時遇到任何與資源有關的事情,例如表單的圖標或圖像列表,它們會被卡住。

它拋出一個錯誤:

An unhandled exception of type 'System.Resources.MissingManifestResourceException' occurred in mscorlib.dll 

在下面的代碼行:

this.LargeImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("LargeImageList.ImageStream"))); 

難道我是如何改變的圖標和圖像存儲爲DLL才能正常工作?

+0

Designer.cs文件與表單的.resx文件不同步。當你「轉換」東西時,這是不可想象的,你沒有留下任何麪包屑。重新輸入圖像列表將是一種解決方法。 –

+0

這也發生在窗體的圖標上。有趣的是,當我嘗試使用IDE重新添加DLL項目中的圖標時,除了''BaseForm.cs''(BaseForm是表單名稱)之外,它還在''BaseForm.cs''中添加了一個新的'InitializeComponent BaseForm.Designer.cs'。當然編譯器標記了衝突,我不得不刪除它。 –

回答

0

當您更改應用程序的程序集/類型名稱時,您需要確定如何處理資源以及如何引用資源。

你必須訪問特定的程序集,你可以閱讀它的資源。

Stream stream = yourAssembly.GetManifestResourceStream(myResourceName); 
0

當我複製的所有鏈接的文件到新的DLL項目的項目文件夾,然後將它們添加到項目中,而不是將它們鏈接到原項目文件夾中的文件,它的工作。