基本上我想在我的构造函数中设置 AssemblyTitle,这样做的原因是因为我有几个版本的程序并且它们都共享相同的 AssemblyInfo.cs
我正在寻找类似的东西
AssemblyTitleAttribute title = "Full Version";
但这一个不起作用,有什么想法吗?
该属性是一个编译时间常数,因此它不能是“在构造函数中”,您有两个选择:
[assembly: AssemblyTitle("Sandbox Console")]
(在声明命名空间之前放置)#if
AssemblyInfo.cs 中的 a 来选择名称并设置构建环境以在Conditional Compilation Symbols
PropertiesBuild
选项卡中定义指令。// 组装信息.cs //(截图) [程序集:AssemblyCopyright("Copyright © 2011")] [组装:组装商标(“”)] [组装:组装文化(“”)] #if 完整版本 [程序集:AssemblyTitle("XYZ App (完整版)")] #别的 [程序集:AssemblyTitle("XYZ App (试用版)")] #万一
您可以在 AssemblyInfo.cs 文件中进行设置。我认为您无法在其他地方更改它。无论如何,您无法在运行时动态设置它,因此不妨将其设置在自定义类中。
您需要重新编译程序集才能更改名称。
该属性附加到已编译的程序集,不能在运行时修改。除非您更改它并编写一个新的程序集文件(根据 MSDN 示例:http: //msdn.microsoft.com/en-us/library/system.reflection.assemblytitleattribute.aspx)。
如果您需要动态应用程序标题,请使用其他内容。
Visual Studio 项目模板默认生成“AssemblyInfo.cs”,但这只是一个默认位置。事实上,您可以将属性放在您想要的任何文件中。唯一的限制是您必须放置在“程序集范围”内,因此以下代码将不起作用:
namespace MySpace
{
[assembly: System.Reflection.AssemblyVersion("1.0.0.0")]
}
这同样适用于类和所有其他块(两者都不起作用)。
class MyPlace
{
[assembly: System.Reflection.AssemblyVersion("1.0.0.0")]
}
源代码中指定的程序集信息在编译过程中嵌入到输出程序集中,因此无法使用代码“动态”更改值(因为代码仅在稍后执行,在运行时)。
我个人非常喜欢在所有本地工作期间坚持使用默认版本。然后,我的程序集的正确版本由构建服务器(Teamcity 或 Team Foundation Server)触发的某种构建脚本设置。
如果您以后真的想更改程序集的任何属性,您可能想看看http://www.mono-project.com/Cecil