VS中資源文件的使用心得,建議關注!

假設有兩個文件:main.exe 和 lib.dll
main.exe調用lib.dll中的某個類

在lib.dll中使用 Assembly.GetExecutingAssembly 得到的將是指向 lib.dll 的Assembly
        如果使用 Assembly.GetEntryAssembly 得到的將是指向 main.exe 的Assembly

還有一個問題值得關注,這個問題搞了我一個下午的時間才弄明白。
我在lib.dll調用Assembly.GetExecutingAssembly後,再用Stream fileStr  = asm.GetManifestResourceStream("Sunset.jpg");得到內嵌資源文件的Stream,卻總是錯,始終找不到原因,後來發現我的這個工程文件的配置對話框裏的common Properties的General裏的Default Namespace裏寫的是NewNamespace,這個缺省的名字與我lib.dll的主namespace完全不一樣,於是我把它給清空(默認將調用與我lib.dll主命名空間一樣的名字),這裏上面的GetManifestResourceStream就能工作正常了。

天啊這樣的問題,搞了我一個下午,氣死我了。
有人問了,缺省的Namespace怎麼會是NewNamespace呢?呵呵,這你就要去問問SharpDevelop裏導出VS工程文件插件的作者去了。因爲我調試的就是導出的這個工程文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章