目前我的工作环境中没有大量的部署控制。虽然有一个长期的计划来创建一个构建脚本来处理部署,此时我们只是发布我们的解决方案,然后将它们复制到服务器上。在SVN中创建具有内部版本号和分支名称的文件
这将是非常有用的一个文本文件或soemthing类似,将包含版本号和分行名称作为它的版本目前正在运行的系统上运行的日志。
是否有可能在Visual Studio中使用SVN挂钩或简单的构建后脚本来完成此操作?
目前我的工作环境中没有大量的部署控制。虽然有一个长期的计划来创建一个构建脚本来处理部署,此时我们只是发布我们的解决方案,然后将它们复制到服务器上。在SVN中创建具有内部版本号和分支名称的文件
这将是非常有用的一个文本文件或soemthing类似,将包含版本号和分行名称作为它的版本目前正在运行的系统上运行的日志。
是否有可能在Visual Studio中使用SVN挂钩或简单的构建后脚本来完成此操作?
这里是我是如何做到的
全部细目创建您的网站的根称为Version.txt一个空白的文本文档。
在您的网站的根称为Version.tmpl具有以下内容
Revision: $WCREV$
Repository: $WCURL$
Modified: $WCMODS?Yes:No$
Built On: $WCNOW$
创建第二个文本文档右键点击你的网站项目,并选择属性。然后转到生成事件选项卡。
以下内容粘贴到你的后生成事件:
cd $(ProjectDir)
"%ProgramFiles%\TortoiseSVN\bin\SubWCRev.exe" ..\. Version.tmpl Version.txt
这将更新Version.txt有关工作副本的一些细节文件,并使用Version.tmpl作为模板。 Version.txt现在已包含在您的网站中,这意味着每次部署网站时,都会部署Version.txt并包含有用的信息,因此您需要将代码库恢复到部署的版本。
svnversion
是用于检查工作副本当前修订版的工具。
在Windows上,您有Subwcrev。
您可以使用构建脚本来完成此操作。查看存储库根目录中的.svn \ entries文件。它应该包含版本号早于该文件(第5行左右)
您可以使用此代码获取从VB的参阅。我使用这个改写版本在应用程序启动时找出这些信息。
http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx
我用蚂蚁作为我的构建工具,所以我有一个存储svnversion,如果在文件svnversion,如果输出Ant目标。该目标是所有主要入口点的依赖关系,所以每次运行ant时,都会更新svn-version。我的包装操作包括所有可交付tar和zip文件中的svn-version。所以我总是可以查看svn-version来找出已安装的代码版本。
无论您使用哪种构建工具,您都应该能够做到这一点。如果svnversion的数据不够用,您可能还想将svn info的输出添加到文件中。
我也使用Ant并开发了一个special Task,它能够从本地存储库(如果代码已签出)或远程Subversion服务器(如果代码已导出)检索Subversion信息并使它们可用通过常规的Ant属性。
使用Ant替换机制(例如,在复制任务中),您可以将这些值放在您认为合适的地方。
谢谢你。你将能够提供一些更完整的代码来说明如何实现这一点? – 2009-07-01 14:18:09