Eny*_*yra 687 .net c# assemblies version
在AssemblyInfo有两个集版本:
AssemblyVersion:指定要归属的程序集的版本.AssemblyFileVersion:指示编译器使用Win32文件版本资源的特定版本号.Win32文件版本不需要与程序集的版本号相同.我可以Assembly Version使用以下代码行:
Version version = Assembly.GetEntryAssembly().GetName().Version;
Run Code Online (Sandbox Code Playgroud)
但我怎么能得到Assembly File Version?
Xia*_*ofu 833
请参阅上面的评论,要求澄清您真正想要的内容.希望这是它:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
Run Code Online (Sandbox Code Playgroud)
小智 189
有三个版本: 程序集,文件和产品.它们由不同的功能使用,如果您没有明确指定它们,则采用不同的默认值.
string assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
string assemblyVersion = Assembly.LoadFile("your assembly file").GetName().Version.ToString();
string fileVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
string productVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion;
Run Code Online (Sandbox Code Playgroud)
小智 62
当我想访问应用程序文件版本(在程序集信息 - >文件版本中设置)时,比如在表单加载时设置标签的文本以显示版本,我刚刚使用过
versionlabel.Text = "Version " + Application.ProductVersion;
Run Code Online (Sandbox Code Playgroud)
Rub*_*ink 22
更新:正如Richard Grimes在我引用的帖子中提到的那样,@ Iain和@Dmitry Lobanov,我的答案在理论上是对的,但在实践中却是错误的.
正如我应该记得的无数书籍等,当使用它设置这些属性时[assembly: XXXAttribute],它们会被编译器劫持并放入VERSIONINFO资源中.
由于上述原因,您需要在@ Xiaofu的答案中使用该方法,因为在从它们提取信号之后剥离属性.
public static string GetProductVersion()
{
var attribute = (AssemblyVersionAttribute)Assembly
.GetExecutingAssembly()
.GetCustomAttributes( typeof(AssemblyVersionAttribute), true )
.Single();
return attribute.InformationalVersion;
}
(来自http://bytes.com/groups/net/420417-assemblyversionattribute - 如前所述,如果您正在寻找不同的属性,请将其替换为上述内容)
小智 10
用这个:
((AssemblyFileVersionAttribute)Attribute.GetCustomAttribute(
Assembly.GetExecutingAssembly(),
typeof(AssemblyFileVersionAttribute), false)
).Version;
Run Code Online (Sandbox Code Playgroud)
或这个:
new Version(System.Windows.Forms.Application.ProductVersion);
Run Code Online (Sandbox Code Playgroud)