【发布时间】:2012-02-26 07:44:34
【问题描述】:
我正在尝试让我们的应用程序处理不同的图标集(使其具有可换肤性)。我询问了通常的做法here。当我尝试应用答案中的解决方案时,我将 .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 的系统级环境变量,应用更改,重新启动 Visual Studio 并尝试构建。但是我收到了这个错误:
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 项目中定义的
【问题讨论】:
标签: winforms msbuild resx visual-studio-2010