【问题标题】:Visual Studio Installer -- Change application resourceVisual Studio 安装程序——更改应用程序资源
【发布时间】:2011-05-17 16:58:30
【问题描述】:

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

Title={Binding Title, FallbackValue='My Generic Title'}

我有 2 个安装程序(每个客户一个)。这就是我现在的做法:

  1. 设置特定于客户 A 的标题。
  2. 编译应用程序。
  3. 为客户端 A 构建安装文件。
  4. 为客户 B 设置标题。
  5. 编译应用程序。
  6. 为客户端 B 构建安装文件。

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

【问题讨论】:

    标签: visual-studio visual-studio-2010 resources installation


    【解决方案1】:

    我认为你可以做到以下几点:

    1) 创建两个名为 Resources.ClientAResources.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 文件,以便它将从外部获取此属性,并且只有在未设置时才设置一些默认值。

    我也不确定完成任务的更简单方法,可能有一些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多