基本上,我的应用程序的资源是我的Resources.resx文件中主窗口的标题。我把它绑定到我的主窗口标题
Title={Binding Title, FallbackValue='My Generic Title'}
我有2个安装程序(每个客户一个)。这就是我现在这样做的方式:
有没有办法将资源设置为我使用的安装程序项目?然后,然后将值更改回“默认”值?
答案 0 :(得分:2)
我认为你可以做到以下几点:
1)创建两个名为Resources.ClientA
和Resources.ClientB
的程序集。它们应该具有完全相同的内容(相同名称空间中的相同类),但此内容应该是特定于客户端的相应客户端。例如,我添加了以下课程仅用于说明:
// assembly for ClientA :
namespace Resources
{
public class Class1
{
public static string Text { get { return "Client A text"; } }
}
}
// assembly for ClientB :
namespace Resources
{
public class Class1
{
public static string Text { get { return "Client B text"; } }
}
}
2)打开主项目文件(csproj)并添加:
<PropertyGroup>
<ClientToken>ClientA</ClientToken>
</PropertyGroup>
3)在下面的同一文件中添加引用:
<ItemGroup>
<ProjectReference Include="..\Resources.$(ClientToken)\Resources.$(ClientToken).csproj">
<Name>Resources.$(ClientToken)</Name>
</ProjectReference>
</ItemGroup>
现在,通过替换ClientToken
属性,您可以替换客户端特定的程序集。您还可以将此属性指定为持续集成过程的一部分,但可能需要稍微修改csproj文件,以便从外部获取此属性,并且只有在未设置该属性时才设置一些默认值。
此外,我不确定完成任务的简单方法,可能还有一些。