在 C# 中将产品版本和文件版本设置为不同的数字

Set Product Version and File Version to different numbers in C#

在 C++ 项目中,我可以在版本资源文件中使用 VERSIONINFO 向我的程序集添加不同的产品版本和文件版本值:

#define VER_PRODUCTVERSION          1,0,0,0
#define VER_PRODUCTVERSION_STR      "1.0[=10=]"

#define VER_FILEVERSION             1,0,0,1
#define VER_FILEVERSION_STR         "1.0.0.1[=10=]"

这在 DLL 属性中显示为:

我在 C# 项目中遇到同样的问题。我在 AssemblyInfo.cs 文件中设置了以下内容:

[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("1.0.0.1")]

但是,在 DLL 属性中,两者都设置为文件版本的值:

如何在 C# DLL 中将产品版本和文件版本设置为不同的值?我正在使用 Visual Studio 2019.

您可以使用 AssemblyInformationalVersion 属性设置 "Product Version" 信息中显示的值。在你的 Assembly.cs 文件中这样设置:

[assembly: AssemblyInformationalVersion("1.2.3.4")]

来自Microsoft documentation

Note: If the AssemblyInformationalVersionAttribute attribute is not applied to an assembly, the version number specified by the AssemblyVersionAttribute attribute is used by the Application.ProductVersion, Application.UserAppDataPath, and Application.UserAppDataRegistry properties.

当我编辑 AssemblyInfo.cs 文件并重建时,发现我刚刚更改的一些值会被重置。

解决方案是编辑 csproj 文件,这就解决了!