AssemblyTitle一旦设置就永远不会改变,我希望每个配置都改变它

时间:2014-01-27 12:05:07

标签: c# wpf .net-assembly msbuild-task

我想根据产品名称更改下面屏幕截图中显示的文字。我知道,该文本来自Assembly.Title属性,它是一个只读属性,因此无法在运行时更改。那么如何在编译时更改它? 我们将应用程序出售给多个客户,应用程序的名称应根据客户进行更改。我们为每个客户配置了一个配置。因此,在构建时,应根据配置选择程序集标题。

enter image description here

有任何建议如何解决这个问题?

更新

我尝试了评论中给出的一些建议,我发现了以下内容:

使用项目属性中的程序集信息弹出窗口设置文本或直接在AssemblyInfo.cs文件中更改它后,它在任务栏中正确显示。

如果我再次更改它,更改的文本不会显示在任务栏中,即。它始终显示第一次设置的文本。

我尝试删除文件,甚至重新启动系统,但它没有帮助。

然后我重命名了文件(即exe文件),然后正确显示了已更改的文本

如果我将其重命名为原始名称,则会显示第一个设置文本。

原因可能是什么?

1 个答案:

答案 0 :(得分:3)

在AssemblyInfo.cs中(在VisualStudio项目的“属性”下),您将找到在如下属性中指定的程序集标题:

[assembly: AssemblyTitle("MyAssembly")]

您应该能够使用编译器常量包装它:

#if SOME_MODE
    [assembly: AssemblyTitle("SomeName")]
#else
    [assembly: AssemblyTitle("ADifferentName")]
#endif