首页 / 知识
没有CC.NET的.NET程序集中的SVN修订版本
2023-04-12 06:40:00

SVN Revision Version in .NET Assembly w/ out CC.NET有没有办法在.NET程序集的版本字符串中包含SVN存储库修订号? 像Major.Minor.SVNRev这样的东西 我已经看到提到用CC.NET这样的东西(虽然实际上是在ASP.NET上),但有没有办法在没有任何额外软件的情况下做到这一点? 在使用构建批处理脚本之前,我在C / C ++中做了类似的事情,但是通过读取版本号来完成,然后让脚本每次都写出一个名为"ver.h"的文件,其效果如下:
然后我们将使用这些定义来生成版本字符串。 这样的.NET可能吗? 这是C#示例,用于自动更新程序集中的修订信息。它基于Will Dean的答案,这不是很精细。 示例: 文件夹属性。 使用AssemblyFileVersion将行修改为:
考虑添加:
这将提供有关程序集构建源的修订状态的详细信息。 将以下预构建事件添加到项目文件属性:
考虑将AssemblyInfo.cs添加到svn ignore列表中。替换的修订号和日期将修改该文件,这将导致无关紧要的更改和修订,$ WCMODS $将评估为true。当然,AssemblyInfo.cs必须包含在项目中。 为了回应Wim Coenen的反对意见,我注意到,与Darryl的建议相反,AssemblyFileVersion也不支持2 ^ 16以上的数字。构建将完成,但实际程序集中的属性File Version将为AssemblyFileVersion模65536.因此,1.0.0.65536以及1.0.0.131072将产生1.0.0.0等。在此示例中,始终存在真正的修订号在AssemblyInformationalVersion属性中。如果您认为这是一个重要问题,您可以省略第3步。 编辑:使用此解决方案一段时间后的一些其他信息。 我在AssemblyInfo.cst文件中添加了两个测试:
使用此功能,您通常必须在提交之后以及成功发布版本之前执行完整的SVN更新。否则,$ WCMIXED将成立。这似乎是由于提交后的文件在提交后重新修改,但其他文件没有。
加成 SubWcRev可用于项目中的任何文件。如果要在网页中显示修订信息,可以使用此VersionInfo模板:
添加一个与AssemblyInfo.cst类似的预构建事件,您可以轻松访问所有相关的SubVersion信息。 这是可能的,但你不应该:汇编版本字符串的组件限制为16位数字(最大65535)。 Subversion版本号很容易变得比那些大,所以在某些时候编译器突然会抱怨。 看看SubWCRev - http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html 程序集版本号通常位于assemblyinfo.cs中 阅读/浏览这些文档: 使用DotSVN从.NET访问Subversion存储库 如何:编写任务 在C#AssemblyInfo文件中插入SVN版本和内部版本号 使用Microsoft Build Engine的自定义任务编译应用程序 第三个参考文献中提到的MSBuildCommunityTasks svnversion不会在Parallels托管Vista(即,跨操作系统)的Mac 10.5.6和VS2008 C#项目构建中使用svn执行。 编写您自己的任务以使用DotSVN从存储库中检索修订版:
这种方式允许存储库路径为"file:/// Y:/ repo",其中Y:是映射到Vista的Mac目录。 另一个答案提到SVN修订号可能不是一个好主意,因为数量的大小有限。 以下链接不仅提供SNV修订号,还提供日期版本信息模板。 将其添加到.NET项目很简单 - 只需要做很少的工作。
这是一个解决这个问题的github项目 以下网址可能会缓慢加载,但是如何使这项工作逐步解释(简单和简短的3或4个步骤) http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/ 如果要更新项目AssemblyInfo.cs中的版本号,您可能对本文感兴趣: CodeProject:在Visual Studio项目中使用Subversion版本号
svn info,告诉你你所使用的版本,你可以在你的项目中在VS中进行"预构建"事件,通过运行svn info并使用自己开发的命令行应用程序解析其结果来生成assemblyinfo.cs。 我之前已经这样做了,但很快就切换到让ccnet将它作为变量传递给nant。 您可以使用可在所有项目中引用的共享程序集版本文件。 UppercuT这样做 - http://ferventcoder.com/archive/2009/05/21/uppercut---automated-builds---versionbuilder.aspx 这将让您了解如何在程序集中获取版本。 |
最新内容
相关内容
python如何检测字符串是不是全为字
python如何检测字符串是不是全为字母?,检测,培训,字符串,字母,方法,字符,示例,语法,以上,更多,python中可以使用isalpha()方法检测字符串是不Python文件如何转换为字符串
Python文件如何转换为字符串,数据,主体,名字,培训,文件,字符串,末尾,方法,对象,语句,python文件如何转换为字符串的方法:一、最方便的方法是一python中字符串怎么转换成int
python中字符串怎么转换成int,情况,培训,字符串,浮点,错误,类型,不是,臣妾,字面,函数,将字符串转换成,整型,从字面理解很容易让人误会。比如,要python怎样计算输入的字符串的长度
python怎样计算输入的字符串的长度,培训,字符串,长度,字典,函数,列表,空格,语法,字符,实例,python中的字符串。可以使用len()函数来计算长度,python如何截断字符串
python如何截断字符串,培训,位置,字符,字符串,索引,倒数,依此类推,方括号,后面,表示,字符串本质上就是由多个字符组成的,Python允许通过索引来python字符串怎么替换
python字符串怎么替换,培训,字符串,参数,函数,方法,使用方法,语法,实例,以上,以下,python中的字符串替换,主要是使用replace()函数。replace()python是否支持字符串
python是否支持字符串,培训,数据,字符串,字符,引号,中文,内容,也就是,源程序,比如说,python要求,字符串必须使用引号括起来,可以使用单引号或者python版本2和3之间的区别是什么?
python版本2和3之间的区别是什么?,培训,区别,之间,版本,python3.6版本中有pip吗?
python3.6版本中有pip吗?,工具,培训,情况,版本,命令,脚本,以下,以上,管理工具,路径,pip是Python包管理工具,该工具提供了对Python包的查找、下python字符串如何定义
python字符串如何定义,培训,数据,字符串,字符,引号,中文,内容,定义,源程序,比如说,简单地理解,字符串就是“一串字符”,也就是用引号内的任何数python字符串代表什么
python字符串代表什么,培训,数字,字符串,字符,代表,斜线,引号,中文,中间,后面,python的字符串就是表示一串字符,字符可以是中文,英文或者数字,或python字符串切片的方法是什么
python字符串切片的方法是什么,培训,字符串,索引,切片,开头,方括号,时候,方法,冒号,首尾,获取Python字符串中的某字符可以使用索引:lang=pytho