![]() |
1
447
在VisualStudio2008中,以下内容起作用。
您可以尝试将此更改为:
但这并不会给你想要的结果,你最终会得到一个产品版本的 和的文件版本 . 不是你想要的! 但是,如果删除这些行中的第二行,并且仅具有:
然后,编译器将文件版本设置为与产品版本相同,您将获得自动递增的产品和文件版本的所需结果,这两个版本是同步的。例如。 1.0.3266.92689 |
![]() |
2
156
打开AssemblyInfo.cs文件并进行更改
到
您可以在IDE中通过转到project->房地产->装配信息 但是,这只允许您自动增加程序集版本,并将为您提供
如果尝试在文件版本字段中放置*,则显示消息框。
|
![]() |
3
55
版本
MSBuild.Community.Tasks
. 只需下载他们的安装程序,安装它,然后修改下面的代码,然后粘贴它
注: It currently does not use the invariant culture.
对于2010年1月14日的第三次构建,这将创建一个
然后必须将该文件添加到项目中(通过
添加现有项目
),以及
|
![]() |
4
29
我提出了一个类似于Christians的解决方案,但不依赖于社区MSBuild任务,这不是我的选项,因为我不想为所有开发人员安装这些任务。 我正在生成代码并编译到程序集,希望自动增加版本号。但是,我不能使用VS 6.0.*AssemblyVersion技巧,因为它每天自动增加版本号,并破坏与使用旧版本号的程序集的兼容性。相反,我希望有一个硬编码的AssemblyVersion,但有一个自动递增的AssemblyFileVersion。我通过在AssemblyInfo.cs中指定AssemblyVersion并在MSBuild中生成VersionInfo.cs来实现这一点,如下所示,
这将为AssemblyFileVersion生成一个具有AssemblyFileVersion属性的VersionInfo.cs文件,其中版本遵循YY.MM.DD.TTTT模式,并带有生成日期。您必须将此文件包含在项目中并使用它进行生成。 |
![]() |
5
17
|
![]() |
6
14
|
![]() |
7
13
要获取版本号,请尝试
另请注意,第三个数字是自2000年2月1日以来的天数,第四个数字是一天中总秒数的一半。所以如果你在午夜编译,它应该是零。 |
![]() |
8
8
在AssemblyInfo中或在其他文章中所述的项目属性下的版本号中设置*不适用于所有版本的Visual Studio/.NET。 Afaik它在VS 2005中不起作用(但在VS 2003和VS 2008中起作用)。对于VS 2005,您可以使用以下内容: Auto Increment Visual Studio 2005 version build and revision number on compile time . 但是请注意,对于强名称程序集,不建议自动更改版本号。原因是,每次重建引用的程序集时,必须更新对此类程序集的所有引用,因为强命名程序集引用始终是对特定程序集版本的引用。只有在接口发生更改时,Microsoft才会更改.NET Framework程序集的版本号。(注意:我还在MSDN中搜索我读到的链接。) |
![]() |
9
6
基于Boog的解决方案(对我来说不起作用,可能是因为VS2008?),您可以使用生成文件的预构建事件的组合,添加该文件(包括其版本属性),然后使用一种方法再次读取这些值。那就是。。 预构建事件:
返回日期的代码(从年到秒):
不太舒服。。此外,我不知道它是否会创建大量的力重建(因为文件总是更改)。 例如,如果只每隔几分钟/小时更新一次VersionInfo.cs文件(通过使用临时文件,然后在检测到足够大的更改时复制/覆盖真实的VersionInfo.cs),则可以使其更智能。我曾经做得很成功。 |
![]() |
10
6
2019年在Visual Studio中
在我设置之后,格式最终被接受
出于某种原因
解决方法:
生成后事件批处理脚本
它使用正则表达式自动增加修订号
|
![]() |
11
5
将版本号设置为“1.0.*”,它会自动在最后两个数字中填入日期(从某个点算起的天数)和时间(从午夜算起的半秒) |
![]() |
12
5
出版 |
![]() |
13
4
在这里:
请注意,您不仅可以修补版本,还可以修补 also all other necessary information . |
![]() |
14
3
转到项目|属性,然后是部件信息,然后是部件版本,并在最后一个或倒数第二个框中添加*号(不能自动增加主要或次要零部件)。 |
![]() |
15
3
|
![]() |
16
2
|
![]() |
17
2
到目前为止,我的申请,
值3251是自2000年1月1日起的天数。我使用它在应用程序的初始屏幕上显示版本创建日期。当与用户打交道时,我可以询问创建日期,这比一些长数字更容易沟通。 (我是一个支持小公司的单人部门。这种方法可能不适合你。) |
![]() |
18
2
|
![]() |
19
2
更改AssemblyInfo在VS2012中起作用。在VisualStudio中没有更多的支持似乎很奇怪,您可能会认为这是构建/发布过程的一个基本部分。 |
![]() |
20
2
我已经创建了一个应用程序来自动增加文件版本。
为了保持简单,应用程序仅在出现错误时才会抛出消息,要确认它工作正常,您需要在“程序集信息”中检查文件版本 注意:您必须在Visual studio中为“程序集信息”按钮重新加载解决方案以填充字段,但是您的输出文件将具有更新版本。 如需建议和请求,请通过telson向我发送电子邮件_alva@yahoo.com |
![]() |
21
1
AssemblyInfoUtil . 自由的开源。 |
![]() |
22
1
我正在使用这种方法 https://stackoverflow.com/a/827209/3975786 将T4模板放置在“解决方案项”中,并在每个项目中与“添加为链接”一起使用。 |
![]() |
23
1
自动的 This article 将解决你的许多问题。 |
![]() |
24
0
|
![]() |
25
0
对于任何使用Turtoise Subversion的人,您可以将其中一个版本号与源代码的Subversion版本号绑定。我觉得这很有用(审计员也很喜欢这个!)。您可以通过在预构建中调用WCREV实用程序并从模板生成AssemblyInfo.cs来完成此操作。
模板文件将包括wcrev令牌替换字符串:$wcrev$
注:
|
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |