如何让'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这是硬编码的,而不是刚刚构建的版本。
最终我希望它在发布管理中运行。有人这么做过吗?
答案 0 :(得分:1)
使用SQLCMD variables,让构建服务器将构建文件夹的路径作为SQLCMD变量传递给SqlPackage.exe。然后修改您的部署后脚本,看起来像这样:
CREATE ASSEMBLY TestWebServiceClientXML from N'$(BuildFolder)\clrdeploy\Test\TestWebServiceClient.XmlSerializers.dll' WITH permission_set = EXTERNAL_ACCESS