我試圖讓我們的應用程序處理不同的圖標集(使其具有可換膚功能)。我問了通常的做法here。當我試圖從答案中應用解決方案時,我用.resx文件中的所有硬編碼圖標路徑替換爲使用環境變量的路徑。例如,我取代...避免.resx文件中的硬編碼圖標文件路徑
<data name="btnDel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\..\Icons\btnDel.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
...與:
<data name="btnDel" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>$(IconsFolder)\btnDel.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
然後,作爲初始測試中,我所定義的系統級的環境變量稱爲IconsFolder
,施加變化,重新啓動的視覺工作室,並試圖建立。但我得到這個錯誤:
D:\SVN.DRA.WorkingCopy\UserControl\My Project\Resources.resx(123,5): error MSB3103: Invalid Resx file. Could not find a part of the path 'D:\SVN.DRA.WorkingCopy\UserControl\My Project\$(IconsFolder)\btnDel.png'. Line 123, position 5.
看起來像.resx文件不理解環境變量。那麼我怎樣才能避免硬編碼這些路徑呢?
編輯:每個圖標可以被多個項目引用,因此任何機制的環境變量用於配置路徑必須在解決方案範圍內可用,我應該能夠設置它從一個MSBuild腳本中。
編輯2:我所有的形式在C#中定義或VB.NET項目
這些說明似乎只適用於Visual C++項目。我忘了提及它,但我所有的表單都是VB.NET和C#項目,它們在屬性 - >調試下沒有任何環境選項 – 2012-02-03 17:51:15