一組軟件產品的區別僅在於其資源字符串,二進制資源以及Visual Studio Setup項目使用的字符串/圖形/產品密鑰。創建,組織和維護它們的最佳方式是什麼?相同來源,具有不同資源的多個目標(Visual Studio .Net 2008)
即所有產品基本上由圖形,字符串和其他資源數據定製的相同核心功能組成,以形成每個產品。 想象一下,您正在創建一系列產品,如「銀行家的Excel」,「園丁的Excel」,「首席執行官的Excel」等。每個產品具有相同的功能,但名稱,圖形,幫助文件,包含的模板等不同。
中,這些正在興建的環境是:香草Windows.Forms的/ Visual Studio 2008中/ C#/ .NET
如果我介紹一個新的字符串理想的解決方案將是很容易保持如。 /新的資源項目我沒有添加資源,應該在編譯時失敗,而不是運行時(並且後續產品的本地化也應該是可行的)
希望我已經錯過了這一切的這種盲目顯而易見的方式。它是什麼?
============澄清(S)=====
所謂 「產品」 我指的是包由安裝程序安裝並銷售給最終用戶的軟件。
目前我有一個解決方案,由多個項目(包括一個安裝項目)組成,它構建一組程序集並創建一個安裝程序。
我需要製作的是多個產品/安裝程序,它們都具有類似的功能,它們是從同一套程序集構建而成,但其中一個程序集使用的資源集不同。這樣做的最好方法是什麼?
------------ 95%的解決方案-----------------
基於Daminen_the_unbeliever的答案,一個資源文件每個配置可以實現如下:
- 創建一個類庫項目(「衛星」)。
- 刪除默認的cs文件,並添加一個文件夾(「默認」)
- 文件夾中創建一個資源文件「爲MyResources」
- 屬性 - 設置CustomToolNamespace的東西 適當的(如「XXX」)
- 確保資源的訪問修飾符是「公共」。添加 的資源。編輯源代碼。 參考資源,你的代碼 爲XXX.MyResources.ResourceName)
- 爲每個產品變型(「ConfigN」)
- 對於每個產品結構的變形,創建一個文件夾(「VariantN」)
- 複製並將MyResources文件粘貼到每個VariantN文件夾中
- 卸載「Satellite」項目並編輯。csproj文件
- 對於每個「VariantN/MyResources」
<Compile>
或<EmbeddedResource>
標記, 添加Condition="'$(Configuration)' == 'ConfigN'"
屬性。 - 保存,重新加載的.csproj,你就大功告成了...
這將創建一個每個配置資源文件,它可以(大概)進一步本地化。編譯錯誤消息是針對缺少資源的任何配置生成的。資源文件可以使用標準方法進行本地化(創建第二個資源文件(MyResources.fr.resx)並像以前一樣編輯.csproj)。
這是一個95%解決方案的原因是,用於初始化表單(例如表格標題,按鈕文本)的資源不能以相同的方式輕鬆處理 - 最簡單的方法似乎是用來自衛星組件。
這個問題有點不清楚。我真的建議你回顧一下你最初的問題,並重新發布在Visual Studio中使用技術術語以及隔離你的問題。 – Roast 2010-03-01 19:57:45
補充說明。目前正在根據構建配置編輯.csproj文件以包含替換資源文件。凌亂保持。有人知道這是否實用? – MZB 2010-03-01 23:29:19
另外考慮創建一個工具來比較資源,以確保兩個文件中存在相同的資源集合以減少迴歸測試...任何人都知道這樣的工具是否存在? – MZB 2010-03-03 21:45:56