2

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

4

3 回答 3

7

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

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

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

有关这方面的更多信息,请参见:http: //jebsoft.blogspot.com/2006/04/consistent-version-numbers-across-all.html

于 2011-01-04T15:14:25.220 回答
3

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

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

于 2011-01-04T15:09:12.710 回答
1

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

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

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

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

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

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

于 2011-01-04T15:57:40.557 回答