Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AssemblyFileVersionAttribute-是否可以使用非版本数据?_C#_.net_Attributes - Fatal编程技术网

C# AssemblyFileVersionAttribute-是否可以使用非版本数据?

C# AssemblyFileVersionAttribute-是否可以使用非版本数据?,c#,.net,attributes,C#,.net,Attributes,我知道这听起来很傻,但我想在我的文件版本中放一个版本(因为它不是用来引用的,而是用来指示文件的版本),它不在标准的系统中。版本格式的主.minor.build.revision 坦率地说,我想把我的存储库变更集散列放在那里,因为它准确地表示了文件的版本。(即从给定变更集生成的dll) 由于属性接受字符串输入(因为Version不是常量),这样做会破坏任何东西吗? AssemblyInformationVersionAttribute是否更适合此任务?或者,当某些东西假定它是MS格式的版本时,这会

我知道这听起来很傻,但我想在我的文件版本中放一个版本(因为它不是用来引用的,而是用来指示文件的版本),它不在标准的
系统中。版本
格式的
主.minor.build.revision

坦率地说,我想把我的存储库变更集散列放在那里,因为它准确地表示了文件的版本。(即从给定变更集生成的dll)

由于属性接受字符串输入(因为
Version
不是常量),这样做会破坏任何东西吗?


AssemblyInformationVersionAttribute
是否更适合此任务?或者,当某些东西假定它是MS格式的版本时,这会让我感到痛苦吗?

您正在公开任何人都可以使用的东西。从属性生成的非托管版本资源很容易访问。NET中的FileVersionInfo类。请注意FileMajor/MinorPart属性,它们是整数,而不是字符串。所以,是的,其中一个人摔倒的几率很小,但不是零。[assembly:AssemblyInformationalVersion(“blah”)]没有帮助,它变成了“产品版本”


除了[AssemblyTitle]什么都没有留下。您的用户有点困惑,但仅此而已。

您正在公开任何人都可以使用的内容。从属性生成的非托管版本资源很容易访问。NET中的FileVersionInfo类。请注意FileMajor/MinorPart属性,它们是整数,而不是字符串。所以,是的,其中一个人摔倒的几率很小,但不是零。[assembly:AssemblyInformationalVersion(“blah”)]没有帮助,它变成了“产品版本”


除了[AssemblyTitle]什么都没有留下。您的用户有点困惑,但仅此而已。

您不能使用修订部分保存更改集哈希吗?@Philipp Schmid:更改集哈希是十六进制的,而且很长<代码>1.0.0。f516f300d51dd45fa83d99d64c70b5c7e97f6e6b不完全是一个有效的
系统。版本
事实上,是
系统的修订版。版本
类型是
,因此它比其他部分包含的信息更少。啊,我想到的是TFS变更集编号,这些编号不是散列。改为使用日期/时间值如何?你能这样找到变更集吗(我不知道你使用的是哪种源代码管理系统)。我使用的是Mercurial,没有日期时间可能不够简单,而且在不同的机器上,系统时钟很容易不同。你能不能用修订部分来保存变更集哈希?@Philipp Schmid:变更集哈希是十六进制的,而且很长<代码>1.0.0。f516f300d51dd45fa83d99d64c70b5c7e97f6e6b不完全是一个有效的
系统。版本
事实上,是
系统的修订版。版本
类型是
,因此它比其他部分包含的信息更少。啊,我想到的是TFS变更集编号,这些编号不是散列。改为使用日期/时间值如何?你能这样找到变更集吗(我不知道你用的是哪种源代码管理系统)。我用的是Mercurial,没有日期时间可能不够简单,而且在不同的机器上系统时钟很容易不同。有趣的是,这并不重要,原因有二。[1] :公众无法访问此程序集(它是ASP网站的libs/core)。即便如此,如果没有回购协议,散列也不会暴露任何东西。[2] :似乎
FileVersionInfo
会优雅地失败。将哈希放入
AssemblyInformationalVersion
会导致
ProductVersion
输出哈希(因为它是一个字符串),并且单个int部分报告0。看来这不是问题。话虽如此,谢谢你的投入,你让我明白了这样做的含义,等等。谢谢:)有趣的是,这并不重要,原因有二。[1] :公众无法访问此程序集(它是ASP网站的libs/core)。即便如此,如果没有回购协议,散列也不会暴露任何东西。[2] :似乎
FileVersionInfo
会优雅地失败。将哈希放入
AssemblyInformationalVersion
会导致
ProductVersion
输出哈希(因为它是一个字符串),并且单个int部分报告0。看来这不是问题。话虽如此,感谢您的投入,您让我理解了这样做的含义,等等。谢谢:)