sqlproj中的参考程序集未部署到服务器


9

我有一个Visual Studio 2013数据库项目这需要一个修改版本FASTJSON作为参考。我在参考属性中选择了Generate DDL,如以下屏幕截图所示:

fastJSON属性面板

在.sqlproj msbuild文件中:

<Reference Include="fastJSON">
  <HintPath>..\..\fastjson\output\net40\fastJSON.dll</HintPath>
  <GenerateSqlClrDdl>True</GenerateSqlClrDdl>
</Reference>

但是bin / debug / Project.sql不包含的行CREATE ASSEMBLY fastJSON . . .。手动添加程序集有效,然后我的项目将部署并运行。如何使Visual Studio部署我的程序集?


5
嗯...我们的设置为FalseModel Aware设置为True,我们CREATE ASSEMBLY在输出中得到一个。也许尝试这些设置,看看会发生什么?
乔恩·塞格尔

Answers:


10

我花了点时间弄清楚这些设置的作用。我不是迁移到数据库项目的项目负责人,所以我对这些内容的细节并不熟悉。

Model Aware属性需要设置为True

此属性的文档记录很少,但是据我了解,启用该属性会将程序集中的对象公开给数据库模型,以便可以在SQLCLR包装器(即CREATE ... EXTERNAL ...)中使用它们,并且可以解析引用。如果项目未在模型中包含这些对象,则无法在输出中编写脚本。另外,如果程序集中有对某个对象的引用,并且此属性设置为False,则该项目将无法生成。

Generate Sql Script我提到的属性处于类似的文档状态。这可以控制程序集中的公共可见成员是否自动编写为输出脚本。我们禁用了它,以保留重命名SQLCLR包装器的灵活性,并选择性地仅包含我们需要的对象。哪种设置方式取决于您的判断。

希望这有助于这些属性的公开文档!


谢谢这个乔恩!它修复了我的“无法解析令牌”错误。
罗兰2015年

“模型意识”到底在哪里设置为true?
nh43de

Model Aware可以通过右键单击引用的DLL并选择来设置其他属性Properties
d12
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.