AssemblyFileVersion在C#中使用的是什么?

时间:2009-08-20 04:40:15

标签: c# assemblyversionattribute assemblyfileversion

在assemblyInfo.cs中,我有AssemblyVersion和AssemblyFileVersion。

通常我只是像这样增加AssemblyVersion。 第一位:重大变化 第二位:轻微变化 第三位:错误修复 第4位:Subversion版本号

但是,我想知道AssemblyFileVersion是什么,以及什么时候需要增加。它应该与assemblyVersion相同吗?

如果我不使用它,我应该评论一下吗?

非常感谢任何建议,

5 个答案:

答案 0 :(得分:15)

AssemblyVersion由.NET类加载器使用,用于标识程序集的.NET版本。 AssemblyFileVersion表示包含在Windows PE文件的标准VERSION_INFO块中的文件版本...换句话说,它表示文件属性对话框中显示的文件版本。

如果省略AssemblyFileVersion,编译器会将其默认为与AssemblyVersion相同。

答案 1 :(得分:5)

通常,文件版本比汇编版本更精确。每个示例:System.Windows.Form.dll - 程序集版本:2.0.0.0,文件版本:2.0.50727.3053。

装配版本是加载装配体时的重要信息。

所以,如果你在其中一个引用汇编中发现了一个小错误。您修复了该错误,更新了文件版本,但保留了相同的程序集版本。优点:您不必将对此程序集的引用重新链接到新版本,而使用文件版本可以知道文件的当前版本。

答案 2 :(得分:3)

安装程序将使用AssemblyFileVersion确定是否根据版本覆盖文件。

重要的是要注意,在尝试从先前版本反序列化时,更改实现序列化的程序集的AssemblyVersion会产生严重后果。

答案 3 :(得分:3)

我不是专家,我可能不会引用专家,但根据我的理解,广义上说大会版本是关于'界面' - >程序集的作用,向后兼容性等.ArderFileVersion更多地与实现,构建等有关。

使用AssemblyVersion属性指定“Last Compatible-To”版本和AssemblyFileVersion属性以指定构建版本。“

- > http://www.shitalshah.com/blog/IsJeffRichterScrewingUpTheNetVersioning.aspx

//哦,还有一件事。

在某些情况下(我不太清楚,因为我只听说过它们但实际上没有经历过它们)如果您尝试使用GAC中的dll更新应用程序,旧版本的dll赢了除非文件版本已更改,否则不会被具有相同程序集版本号的新版本覆盖。 (这句话是否足够复杂?现在已经很晚了......)

答案 4 :(得分:2)

AssemblyFileVersion用于在您的Win32资源中设置版本信息 二进制文件,如果打开文件的属性窗口,则会看到二进制文件 在资源管理器中。