我有一个需要在两个独立品牌下发布的应用程序。要做到这一点,我需要在整个应用程序中有一些不同的图像和字符串,例如在about对话框中。
我最初的想法是在我的资源目录下有单独的文件夹,每个品牌都有相同的文件,包括一个带有字符串常量的resx文件。然后我将使用一个参数来更改我的csproj文件中的一个属性,该属性将改变资源文件的路径。
这会有用吗?有没有更好的方法来解决这个问题?
我的想法示例:
项目文件:
<PropertyGroup>
<BRAND>DefaultBrand</BRAND>
</PropertyGroup>
<EmbeddedResource Include="Resources\$(BRAND)\branding.resx" />
<Compile Include="Resources\$(BRAND)\branding.Designer.cs" />
<ItemGroup>
<None Include="Resources\DefaultBrand\BG.png" />
<None Include="Resources\OtherBrand\BG.png" />
</ItemGroup
的Program.cs:
ResourceManager rm = new ResourceManager("branding", Assembly.GetExecutingAssembly());
String companyName = rm.GetString("COMPANY_NAME");
构建命令:
MSBuild MSBuild.xml /t:Compile
MSBuild MSBuild.xml /t:Compile /p:BRAND=OtherBrand