Visual studio Visual Studio安装程序--更改应用程序资源

Visual studio Visual Studio安装程序--更改应用程序资源,visual-studio,visual-studio-2010,resources,installation,Visual Studio,Visual Studio 2010,Resources,Installation,基本上,我的应用程序在Resources.resx文件中有一个资源作为主窗口的标题。我将此绑定到我的主windows标题 Title={Binding Title, FallbackValue='My Generic Title'} 我有2个安装程序(每个客户一个)。我现在就是这样做的: 将特定标题设置为客户端A 编译应用程序 为客户端A生成安装文件 将特定标题设置为客户端B 编译应用程序 为客户端B生成安装文件 有没有办法将资源设置为我使用的安装程序项目的特定资源?然后,将该值更改回“默认”

基本上,我的应用程序在Resources.resx文件中有一个资源作为主窗口的标题。我将此绑定到我的主windows标题

Title={Binding Title, FallbackValue='My Generic Title'}
我有2个安装程序(每个客户一个)。我现在就是这样做的:

  • 将特定标题设置为客户端A
  • 编译应用程序
  • 为客户端A生成安装文件
  • 将特定标题设置为客户端B
  • 编译应用程序
  • 为客户端B生成安装文件

  • 有没有办法将资源设置为我使用的安装程序项目的特定资源?然后,将该值更改回“默认”值?

    我认为您可以执行以下操作:

    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)
    
    现在,通过替换
    ClientToken
    属性,您可以替换特定于客户端的程序集。您还可以将此属性指定为连续集成过程的一部分,但可能需要稍微修改csproj文件,以便它从外部获取此属性,并且仅当未设置此属性时,才设置一些默认值

    另外,我不确定是否有更简单的方法来完成你的任务,可能有一些