如何控制Visual Studio 2013中SQL Server CLR项目的程序集版本号
控制Visual Studio 2013 SQL Server CLR项目的程序集版本号
我来帮你解决这个版本号控制的问题,分手动递增和自动递增两种实用方案,都是实际开发中验证过的方法:
手动递增版本号
如果只是偶尔需要更新版本,手动修改是最直接的方式:
- 右键你的SQL Server CLR项目,选择属性
- 在属性窗口切换到应用程序标签页,点击程序集信息按钮
- 在弹出的对话框里,直接修改版本和文件版本字段(格式为
主版本.次版本.内部版本.修订版本,比如把1.0.0.0改成1.0.1.0) - 确定保存后重新构建项目,部署到SQL Server的程序集就会使用新的版本号
注意:如果程序集已经部署到SQL Server,更新版本后需要重新部署(选择替换现有程序集),或者用SQL语句更新:
ALTER ASSEMBLY YourAssemblyName FROM 'C:\Your\Assembly\Path\UpdatedAssembly.dll' WITH PERMISSION_SET = SAFE; -- 根据你的项目权限设置调整
实现构建时自动递增版本号
如果需要每次构建都自动更新版本号,有两种常用方式:
方法1:用通配符自动递增修订号
Visual Studio 2013支持通过程序集信息文件的通配符实现自动递增:
- 打开项目里的
Properties\AssemblyInfo.cs文件 - 找到以下两行代码:
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] - 将
AssemblyVersion的修订号替换为*,比如:[assembly: AssemblyVersion("1.0.0.*")] [assembly: AssemblyFileVersion("1.0.0.0")] -- 注:文件版本不能用通配符,若要同步需用下面的脚本方法 - 这样每次构建时,Visual Studio会自动递增修订号(内部版本号基于日期生成,修订号是当天的构建次数)
方法2:预构建脚本实现自定义递增逻辑
如果需要更灵活的版本规则(比如递增主/次版本、自定义递增步长),可以添加预构建事件脚本:
- 右键项目→属性→生成事件→预生成事件命令行
- 输入PowerShell脚本实现修订号自动递增(示例):
$assemblyPath = "$(ProjectDir)Properties\AssemblyInfo.cs" $versionRegex = '\[assembly: AssemblyVersion\("(\d+)\.(\d+)\.(\d+)\.(\d+)"\)\]' $content = Get-Content $assemblyPath -Raw $content -match $versionRegex | Out-Null $major = $matches[1] $minor = $matches[2] $build = $matches[3] $revision = [int]$matches[4] + 1 $newVersion = "[assembly: AssemblyVersion(`"$major.$minor.$build.$revision`")]" $content = $content -replace $versionRegex, $newVersion Set-Content $assemblyPath $content -Encoding UTF8 - 同理可以修改
AssemblyFileVersion的规则,确保文件版本和程序集版本同步 - 保存设置后,每次构建前脚本会自动执行版本递增
提示:使用脚本前建议备份
AssemblyInfo.cs,团队开发时要确保所有成员的环境兼容该脚本(比如PowerShell版本要求)
内容的提问来源于stack exchange,提问作者user1063108
相关产品推荐
相关产品推荐

