【问题标题】:Turn Off Auto Increment on AssemblyInfo.cs?关闭 AssemblyInfo.cs 上的自动增量?
【发布时间】:2023-03-20 16:00:02
【问题描述】:

我们有一个管理版本号的构建服务器。当我们调试时,我们创建一个本地构建,它也尝试管理版本号。结果是需要解决 AssemblyInfo.cs 中的永久版本控制 (SVN) 冲突。

注意:我们使用的是[assembly: AssemblyVersion("w.x.y.z")],而不是下面@estebane 提到的通配符。

如何关闭 Visual Studio 2010 的自动增量功能?

【问题讨论】:

  • 你在做什么来创建那些“本地”构建?您是否正在使用某种构建过程,例如 TFS、TeamCity、Jenkins、自定义 MSBuild 脚本,它会自动增加版本号?
  • 嗨@Bryan。本地构建是一个 SVN 检查。远程构建是 TeamCity。

标签: visual-studio-2010 svn version-control assemblies assemblyinfo


【解决方案1】:

在您的 AssemblyInfo 文件中,您可以设置版本并避免使用自动递增

[assembly: AssemblyVersion("1.0.0.0")]

如果自动增量处于活动状态,它看起来像

[assembly: AssemblyVersion("1.0.*")]

【讨论】:

  • 谢谢 estebane。从外观上看,我有[assembly: AssemblyVersion("1.0.0.0")],它仍在递增。那么如何在 Visual Studio 2010 中关闭自动增量功能呢?
【解决方案2】:

试试这个:

  • 在VS中打开项目属性
  • 单击应用程序选项卡
  • 点击“程序集信息”按钮
  • 设置程序集和文件版本
  • 清理解决方案并重建
  • 清理并重建使用您的 dll 作为参考的项目

如果这不起作用,您的问题在别处。

您可以通过在 Windows 资源管理器中找到 dll 来检查这些设置的效果,右键单击,选择“属性”,单击“详细信息”选项卡并检查文件版本和产品版本字段。如果这些行为符合预期,请尝试追踪您实际加载的过期副本在哪里。

【讨论】:

  • 谢谢@Sten。这里的问题在于版本控制(远程修改 AssemblyInfo.cs)和调试构建(本地修改 AssemblyInfo.cs),以及 AssemblyInfo.cs 的永久冲突。因此,我想关闭自动增量(并消除冲突的根源)。
  • 如果有远程修补,您无法使用任何 VS 设置在本地解决问题。您有两个选择:对参与源代码控制的所有各方应用相同的过程,包括任何源代码控制服务器自动化,或者从源代码控制中删除 AssemblyInfo.cs 并保留您的本地副本。在后一种情况下,如果您有构建服务器,您仍然需要在那里修复版本控制。
【解决方案3】:

尝试使用以下方法设置固定的程序集版本 1.0.0.0 和固定的文件版本 1.0.*。

[assembly: AssemblyVersion("1.0")]
[assembly: AssemblyFileVersion("1.0.*")]

希望这将停止增加您的程序集版本。

【讨论】:

    【解决方案4】:

    您是否有任何构建前或构建后的步骤正在改变它?也许查看构建的输出窗口,看看是否有任何迹象表明哪个进程可能正在改变它。

    如果您的 AssemblyInfo.cs 文件中最初有 [assembly: AssemblyVersion("1.0.0.0")] 并且它在构建后更改,则 VS.NET 之外的其他东西正在修改该文件。

    【讨论】:

      【解决方案5】:

      似乎您有另一个非默认软件/插件/扩展更新您的版本号。因为不使用通配符时 Visual Studio 不会这样做。

      检查您的 Visual Studio 插件列表和扩展列表。

      【讨论】:

        猜你喜欢
        • 2020-11-16
        • 2014-08-09
        • 2015-01-21
        • 2020-04-18
        • 2019-06-26
        • 1970-01-01
        • 2013-09-16
        • 1970-01-01
        • 2019-05-17
        相关资源
        最近更新 更多