【问题标题】:C#: how to set version number of assemblyC#:如何设置程序集的版本号
【发布时间】:2010-10-20 07:28:04
【问题描述】:

我使用 VS2005 用 C# 编写了一个 DLL。

当前 DLL 显示的版本号为 1.0.0.0。

如何将此版本号设置为不同的版本号?

【问题讨论】:

    标签: c# versioning


    【解决方案1】:

    在 AssemblyInfo.cs 文件中查找以下行,并将其设置为您想要的任何版本号:

    [assembly: AssemblyVersion("1.0.0.0")]
    

    【讨论】:

    • 非常正确,还有另一种方法,我不确定VS2005,但至少VS2008及更高版本在解决方案资源管理器中有属性项,双击它,它在你也可以编辑程序集版本
    • 有人可以确认这在 VS2005 中是否可行吗?
    • 那是如何设置程序集版本,是的。属性项只是在 assemblyinfo 文件中设置值。
    • 假设我们将其设置为 1.9.10292.8。但是如何自动增加呢?
    【解决方案2】:

    您可以直接使用AssemblyFileVersionAttribute 指定文件版本...

    指示编译器使用特定的 Win32 文件的版本号 版本资源。

    ...或者您可以完全删除此属性,这意味着文件版本默认为程序集版本。这可能是一种很好的做法,因为文件版本与程序集版本不同会导致混淆。

    如果 AssemblyFileVersionAttribute 是 未提供,该 AssemblyVersionAttribute 用于 Win32 文件版本是 显示在版本选项卡上 Windows 文件属性对话框。

    您可以使用AssemblyVersionAttribute 设置程序集版本。

    Assembly 属性通常应用在 AssemblyInfo.cs 文件中,如其他答案中所述。

    【讨论】:

    【解决方案3】:

    右键单击项目并单击属性。 将出现属性窗口。在那个单击应用程序选项卡。 它将显示项目的应用信息。将有一个名为 Assembly Information 的按钮。单击按钮,它将显示一个包含项目组装信息的表单。您可以指定程序集版本(包含四个文本框,即主要版本、次要版本、内部版本号、修订版)。它将程序集详细信息存储在相应项目的 AssemblyInfo.cs 中。

    【讨论】:

    • 这不会为我在 MonoDevelop 中自动填充 AssemblyInfo.cs 中的 AssemblyVersion 属性。
    【解决方案4】:

    您可以在AssemblyInfo.cs中设置版本号。

    // Version information for an assembly consists of the following four values:
    //
    //      Major Version
    //      Minor Version 
    //      Build Number
    //      Revision
    //
    // You can specify all the values or you can default the Build and Revision Numbers 
    // by using the '*' as shown below:
    // [assembly: AssemblyVersion("1.0.*")]
    [assembly: AssemblyVersion("1.0.0.0")]
    [assembly: AssemblyFileVersion("1.0.0.0")]
    

    请注意,程序集版本与程序集文件版本不同。从您的简短描述看来,您更像是在寻找后者 - AssemblyFileVersion

    【讨论】:

    • 它们很可能是一样的,不是吗?
    • 但是如何自动递增呢?请指导我
    【解决方案5】:

    在 AssemblyInfo.cs 中修改这一行:

    // Version information for an assembly consists of the following four values:
    //
    //      Major Version
    //      Minor Version 
    //      Build Number
    //      Revision
    //
    [assembly: AssemblyVersion("1.9.10292.8")]
    

    【讨论】:

    • 假设现在,我想从这里开始自动增加它。我的意思是在下一次构建之后应该是“1.9.10293”如何实现。
    • @Unbreakable 您可以编写一个控制台应用程序,将 AssemblyInfo.cs 文件读入行 (string[]),查找以 [assembly: AssemblyVersion(" 开头的行,解析以下子字符串直到 ")]进入new Version(),增加构建,然后用[assembly: AssemblyVersion(\"" + myVersion.ToString() + "\")]替换该行并将所有行写回文件。您可以在构建事件中调用应用程序(在您的项目属性中),使用 $(ProjectDir) 提供路径,以便为您的控制台应用程序提供项目目录来查找 AssemblyInfo 文件
    猜你喜欢
    • 2017-11-27
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2010-10-10
    • 2018-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多