在构造函数c#中设置汇编标题
本文关键字:汇编 标题 设置 构造函数 | 更新日期: 2023-09-27 17:51:05
基本上我想在我的构造函数中设置AssemblyTitle,这样做的原因是因为我有几个版本的程序,它们都共享相同的AssemblyInfo.cs
我正在寻找这样的东西
AssemblyTitleAttribute title = "Full Version";
但是这个不行,有什么主意吗?
该属性是一个复杂的时间常数,所以它不能是"在构造函数中",你有两个选择:
- 完整版本中唯一的类有
[assembly: AssemblyTitle("Sandbox Console")]
(放在声明命名空间之前) - 在AssemblyInfo.cs中使用
#if
来选择名称并设置构建环境,以便在属性的Build
选项卡中定义Conditional Compilation Symbols
中的指令。
可以在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