AssemblyTitle 一旦设置就永远不会更改,我希望根据配置更改它

问题描述 投票:0回答:2

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

enter image description here

有什么建议如何解决这个问题吗?

更新:

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

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

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

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

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

如果我将其重命名回原来的名称,它会显示第一个设置的文本。

可能是什么原因?

c# wpf .net-assembly msbuild-task
2个回答
3
投票

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

[assembly: AssemblyTitle("MyAssembly")]

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

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

0
投票

非常老的问题,但这种行为在这里从未得到解释,这花了我太长时间。

您想更改 AssemblyInfo.cs 中的 AssemblyTitle,正如其他评论指出的那样,但为了测试它的效果还不够:

Windows 缓存二进制文件的 AssemblyTitle。 将二进制文件复制到另一个位置以查看编辑的效果,或者删除注册表中与二进制文件相对应的条目:

HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache
© www.soinside.com 2019 - 2024. All rights reserved.