August 7,2006
當程式找不到 resource file 時該如何解決
根據微軟的說法,當有了以下的行為/情怳後,你編譯出來的程式不會有任何的warning,但是當執行時會出現找不到resource檔案的exception。
1、需要參照 resource 的 main windows form 的 class 不是整個專案中的第一個class。
2、main window form class 的名稱有改變過
微軟的解決方案是更改該resource檔案的build setting,把名字改成改變後的。但是有時候仍然無法解決這問題,這時候,手動指定resource檔案能夠有效(但是不治本)的解決這問題。
例:
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(maagsServerForm::typeid));
改變成:
System::Resources::ResourceManager^ resources = gcnew ResourceManager("server.maagsServerForm", Assembly::GetExecutingAssembly() ) ;
則變成手動指定 "server.maagsServerForm.resource"此檔為做為 resource 檔案。
但需要注意的是,由於第一行程式通常是由 interface builder 產生,當用interface builder更動了任何 form 上的元件(增加/刪除/指定delegate)後,該行會被interface builder更新回去原來的狀態,這時候必需要手動再修改一次(所以說不治本)。