已經有另一個名為 XXX 的資源

Home Home
引用 | 編輯 sob790717
2014-02-05 15:57
樓主
推文 x0
剛剛程式專案的資源做一做不知道做了什麼好事導致本來發生了類似這樣的 ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 ebolaman
2014-02-11 00:23
1樓
  
先點 方案總管的 顯示所有檔案
看還有沒有重複的資源檔

再將 obj 資料夾全部刪除,有時有詭異的 bug 這樣可以解決

再編譯,出現錯誤的話直接點兩下去看程式碼
喵ㄧ喵看能不能手動刪除重複的 id

並參考類似問題的討論串:
http://stackoverflow.com/questions/313718/what-could-cause-visual-studio-c-sharp-error-msb3105-duplicate-resources

並下載 Visual Studio 2010 Service Pack 1
專門修複ㄧ些舊版的 bugs 用

獻花 x1
引用 | 編輯 sob790717
2014-02-11 23:24
2樓
  
obj 資料夾是暫存的一種嗎?
刪了會不會使專案缺東缺西?

獻花 x0
引用 | 編輯 ebolaman
2014-02-12 12:33
3樓
  
下面是引用 sob790717 於 2014-02-11 23:24 發表的 : 到引言文
obj 資料夾是暫存的一種嗎?
刪了會不會使專案缺東缺西?

obj 類似於 object code

http://blog.itpub.net/12639172/viewspace-521345
解釋道

obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。

obj 資料夾刪除了不會影響 原始碼

獻花 x1
引用 | 編輯 sob790717
2014-03-25 20:23
4樓
  
關於資源問題
還有另一個疑問就是

我最近需要設計一些程式可以多語系顯示的功能

目前參考了此一教學
http://www.dotblogs.com.tw/larrynung/archive/2009/04/24/8158.aspx


反過來看看自己的



好像沒有

我的開發工具是VB2010 Express

目前打算製作一種多語系切換的程式需要用到



此種方法須透過在地化語系以及新增在地化資源檔才能完成

獻花 x0
引用 | 編輯 ebolaman
2014-03-28 00:00
5樓
  
下面是引用 sob790717 於 2014-03-25 20:23 發表的 : 到引言文
關於資源問題
還有另一個疑問就是

我最近需要設計一些程式可以多語系顯示的功能

目前參考了此一教學
http://www.dotblogs.com.tw/larrynung/archive/2009/04/24/8158.aspx


反過來看看自己的

好像沒有

我的開發工具是VB2010 Express

目前打算製作一種多語系切換的程式需要用到



此種方法須透過在地化語系以及新增在地化資源檔才能完成

Express 似乎少很多功能,如果是學生,可以免費取得 Professional 版本

雖然多語系切換還可以用其他方式辦到,但該教學是最常用,最方便的

請勿下載盜版

獻花 x0
引用 | 編輯 sob790717
2014-03-28 22:13
6樓
  
下面是引用 ebolaman 於 2014-03-28 00:00 發表的 : 到引言文


Express 似乎少很多功能,如果是學生,可以免費取得 Professional 版本

雖然多語系切換還可以用其他方式辦到,但該教學是最常用,最方便的

請勿下載盜版

那請問有辦法在表單載入前執行
System.Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo("en")
指令碼嗎?

試過幾個位置都是在表單載入後才能執行這個指令碼
導致切換語言都沒辦法切到

獻花 x0
引用 | 編輯 ebolaman
2014-03-29 07:28
7樓
  
下面是引用 sob790717 於 2014-03-28 22:13 發表的 : 到引言文


那請問有辦法在表單載入前執行
System.Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo("en")
指令碼嗎?

試過幾個位置都是在表單載入後才能執行這個指令碼
導致切換語言都沒辦法切到

該程式碼通常加在 InitializeComponent 下
要執行哪都可以,但因為不會影響已經載入的視窗,所以如果在表單載入後要切換,可以
1. 要求使用者重啟程式 (建議,因為方便,不容易錯)
2. 將表單重載入
3. 手動編程 (例如教學文提到的 ComponentResourceManager + 遞迴)

#2 和 #3 看起來不難,但是會有幾個問題:
1. 處理不好的話,會和使用者目前正使用的資料衝突
例如使用者正以簡體名稱登入,雖然表單改成繁體,但是登入名稱沒改
之後用繁體名稱去修改,導致資料錯亂
2. 控制項的內容需要手動重載
因此函式要分隔開,專門做資料重載

因此大多數軟體都是用 #1 的方式,避免設計缺陷

獻花 x0