【问题标题】:AssemblyInfo.cs , .net applications versionsAssemblyInfo.cs , .net 应用程序版本
【发布时间】:2011-01-04 15:05:52
【问题描述】:

我想在我的 .net 应用程序中保留版本并让 .net 来管理它。我真的不明白它是如何工作的。是每个项目的版本号吗? .net 如何管理版本?如果有人能简单解释一下,我将不胜感激。

【问题讨论】:

  • 请详细说明您想做什么。
  • @Bobby:了解版本控制在 .NET 项目中的工作方式。不要太复杂。

标签: c# .net versioning assemblyinfo


【解决方案1】:

我通常做的是保留一个 SolutionInfo.cs,其中包含我的解决方案项目的所有通用属性,例如版本号。我将此文件保存在解决方案根目录中。

然后我将该文件链接到项目中(右键单击项目并添加->现有项目...->添加为链接(添加按钮上的小箭头))。

然后我可以在一个地方增加版本号,它将在链接该文件的所有项目中更新。

如需了解更多信息,请参阅:http://jebsoft.blogspot.com/2006/04/consistent-version-numbers-across-all.html

【讨论】:

    【解决方案2】:

    版本号是每个项目(.csproj 文件),因此每个构建的 .dll 或 .exe 文件。版本号嵌入在 .dll 或 .exe 中,可以使用(例如)Windows 资源管理器通过右键单击文件并选择 Properties 来查看。

    MSDN 包含一篇关于如何使用AssemblyVersionAssemblyFileVersion 的解释性文章http://support.microsoft.com/kb/556041

    【讨论】:

    • 可能很重要的一点是,Windows 资源管理器中显示的版本是文件版本,而不是程序集版本。文件版本是对 .net 应用程序没有功能影响的版本。程序集版本是实际影响应用程序中加载的 DLL 的版本。
    • 感谢文章链接。我有第 4 个原子,修订号,设置为“*”,除了调试/发布设置和重建之外什么都没有改变,我得到一个 19247 19336 19367 的序列,这让我想知道这到底是怎么回事。 KB 说它会加一。一定是新数学什么的?!
    【解决方案3】:

    [AssemblyVersion] 在 .NET 中非常重要。程序中的每个类型都印有汇编版本,它是类型标识的一部分。换句话说,当您的类型的版本发生变化时,您也应该更改程序集版本。这会强制重新编译所有使用您的类型的其他程序集。

    您可以做的一件事是让构建系统自动增加版本。无论如何,您都无法将其称为“管理版本”。因为现在只是重建您的程序集,即使不对源代码进行任何更改,也会使您的程序集与使用该程序集中类型的其他代码不兼容。

    显然,只有在您重新编译解决方案中的所有代码时,这才能正常工作。

    嗯,除非你喜欢剑术,否则这不是很好。此外,有时您想在代码中进行简单的错误修复。结果是仍然 100% 与原始版本兼容的程序集。而且您不需要也不想重新编译使用它的所有其他内容。您只想将一个组件发送给您的客户。显然,只有当您让版本自动递增时,它才能正常工作。

    因此,您真正需要的是某种工具,它可以神奇地确定您的源代码(其中的公开可见部分)不再与以前的版本兼容。或者您对其不可见部分所做的更改过多地改变了代码的行为,以至于不允许使用您的类型的其他代码继续使用它,而无需对其代码进行一些更改。

    据我所知,只有一种工具可以做到这一点,那就是我们耳朵之间的那个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-23
      • 2011-03-11
      • 2017-03-27
      • 2017-05-18
      • 1970-01-01
      • 2010-11-01
      相关资源
      最近更新 更多