情况就是这样:
我有一个Trigger.dll和一个Trigger.XmlSerializer.dll.
我使用CREATE ASSEMBLY在MSSQL中注册它们.
现在,我已经编译了两者的新版本.
我想使用ALTER ASSEMBLY来更新它们,但是你一次只能更新一个.如果您尝试更新具有依赖关系的那个,它会抱怨.这样做的诀窍是什么?
我不想丢弃并重新创建,因为我必须删除所有触发器等,并且有数据库停机时间.
根据微软支持,您可以通过技巧使用它.
笔记
这些步骤在"如何升级或降级程序集"部分中描述的方案中升级或降级程序集A.
此示例假定两个程序集的版本都是1.0.0.0,程序集都是用C#编写的.当您执行这些步骤时,您尝试将程序集A和程序集B升级到版本2.0.0.0.
要升级或降级程序集A,请按照下列步骤操作.
将程序集B的1.0.0.0版备份到文件夹.
修改然后将程序集B重新编译为2.0.0.0版.
使用ALTER ASSEMBLY语句升级SQL Server 2005中的程序集B.
修改然后将程序集A重新编译为2.0.0.0版.执行此操作时,请从步骤1中创建的备份引用程序集B的1.0.0.0版.为此,请将Csc.exe编译器工具与/ reference开关一起使用.例如,使用以下命令:csc/target:library /out:AssemblyA.dll AssemblyA.cs AssemblyInfo.cs /reference:"BackupFolder\AssemblyB.dll"注意要验证程序集A的元数据中的程序集B的版本,使用Ildasm.exe实用程序打开程序集A. 然后,在MANIFEST部分下验证引用的程序集的元数据信息.
使用ALTER ASSEMBLY语句升级SQL Server 2005中的程序集A.