使用数据库项目中的XmlSerializers程序集进行错误部署

时间:2013-02-05 12:38:38

标签: database visual-studio-2010 sql-server-2008

在VS2010数据库项目中,我引用了一个CLR项目“MyProject”,它使用构建选项“Generate serialization assembly”。因此,一代MyProject会生成MyProject.dll和MyProject.XmlSerializers.dll。

当我在数据库项目中选择“Deploy”时,出现此错误: MyDatabase.dbschema(0,0):错误TSD00562:如果执行此部署,将删除[MyProject.XmlSerializers]而不会重新创建。

如何解决此错误?

谢谢。

2 个答案:

答案 0 :(得分:0)

解决方案是一组Visual C#SQLCLR数据库项目, 在Build属性“Generate Serialization assembly”到“ON” 见http://msdn.microsoft.com/en-us/library/vstudio/kb4wyys2(v=vs.100).aspx。 关心Laco。

答案 1 :(得分:0)

在我的示例程序集中,名称是CallWorkflowServiceCLR.dll和CallWorkflowServiceCLR.XmlSerializers.dll

我在目标服务器(“my_server_name”)上创建并共享文件夹“D:\ CLRProcedure”,专门用于部署。

在项目属性/构建事件/构建后事件命令行中的Visual Studio中 - 我写道:     xcopy / Q / Y“$(TargetDir)*。dll”“\ my_server_name \ CLRProcedure \”

然后在PostDeployScript.sql中写道:

if exists (select * from sys.assemblies 
where name = 'CallWorkflowServiceCLR.XmlSerializers')
DROP ASSEMBLY [CallWorkflowServiceCLR.XmlSerializers]

CREATE ASSEMBLY [CallWorkflowServiceCLR.XmlSerializers] 
from 'D:\CLRProcedure\CallWorkflowServiceCLR.XmlSerializers.dll' 

P.S。:在我项目的属性中:

Build / Generate serialization assembly = ON
Database / Permisssion level = EXTERNAL

此外,您应该从有权使用目标服务器的用户帐户启动Visual Studio