我在同一个解决方案中有数据库项目和SQLCLR数据库项目。两个项目都将代码部署到数据库,但是我希望数据库项目负责部署所有代码,包括自定义程序集。
我们使用数据库项目部署到我们的登台和生产环境,目前还不清楚如何部署单独项目的组装。
答案 0 :(得分:2)
事实证明这很简单。在Database项目中添加对SqlClr项目的引用。然后,数据库项目将自动识别程序集,并将其添加到其脚本集中。
将程序集添加到数据库中,在CLR类型,函数,聚合等的创建脚本中引用它是一件简单的事情。
逐步添加SQLCLR聚合函数: 1)右键单击数据库项目 - >添加参考。 从解决方案中的项目列表中选择SQL CLR项目
2)切换到数据库Schema(View - > Database Schema View) 验证Assembly是否出现在Assemblies foler
中3)深入到函数文件夹(架构 - > dbo - >可编程性 - >函数) 右键单击并添加 - >功能 - >聚合函数
相应地编辑模板以创建聚合。
现在数据库项目是一个完整的部署单元,并且在部署过程中不需要SQL CLR项目。
答案 1 :(得分:0)
这两个项目文件是msbuild项目文件。因此,您可以使用msbuild脚本来驱动它们。
Database Project导入此文件。 $(MSBuildExtensionsPath)\微软\ VisualStudio的\ V10.0 \ TeamData \ Microsoft.Data.Schema.SqlTasks.targets
在我的64位机器中
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData
它的目标就像 DspBuild DspSetupDeploy DspDeploy
SqlClr项目导入时
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlClr.targets
它有像
这样的目标SqlClrDeploy
调用两个部署目标的简单msbuild文件就足够了。
或者您可以在构建到其他文件的目标之前自定义要调用的数据库项目文件。哪个会更复杂。