SSDT使用Create Assembly for XMLSerializers发布Post Deployment Script

时间:2015-02-20 10:13:47

标签: c# .net sqlclr sql-server-data-tools

如何让'Create Assembly'引用构建输出路径。

我有一个引用Web服务的SQL CLR。

我在PostDeployment脚本中有一个条目

CREATE ASSEMBLY TestWebServiceClientXML from N'\\TestServer2012\clrdeploy\Test\TestWebServiceClient.XmlSerializers.dll' WITH permission_set = EXTERNAL_ACCESS

目前这个工作正常。我手动单独构建TestWebServiceClient,将dll和XMLSerializer dll构建为SQL可以看到的共享。当我随后使用CLR发布数据库项目时,PostDeployment脚本使用我刚刚从共享构建的XMLSerializers dll。

如何让这个场景与构建服务器一起使用?所有构建输出(包括XMLSerializers dll)将转到构建服务器上的单个构建输出路径,当部署后脚本运行时,它将从共享'\ TestServer2012 \ clrdeploy \ Test \'上的旧版本创建一个程序集as这是硬编码的,而不是刚刚构建的版本。

最终我希望它在发布管理中运行。有人这么做过吗?

1 个答案:

答案 0 :(得分:1)

使用SQLCMD variables,让构建服务器将构建文件夹的路径作为SQLCMD变量传递给SqlPackage.exe。然后修改您的部署后脚本,看起来像这样:

CREATE ASSEMBLY TestWebServiceClientXML from N'$(BuildFolder)\clrdeploy\Test\TestWebServiceClient.XmlSerializers.dll' WITH permission_set = EXTERNAL_ACCESS