Jus*_*ing 9 sql-server sql-clr visual-studio-2013 database-projects
我有一个Visual Studio 2013数据库项目这需要一个修改版本的FASTJSON作为参考。我在参考属性中选择了 Generate DDL,如下图所示:

在 .sqlproj msbuild 文件中:
<Reference Include="fastJSON">
<HintPath>..\..\fastjson\output\net40\fastJSON.dll</HintPath>
<GenerateSqlClrDdl>True</GenerateSqlClrDdl>
</Reference>
Run Code Online (Sandbox Code Playgroud)
但是 bin/debug/Project.sql 不包含CREATE ASSEMBLY fastJSON . . .. 手动添加程序集工作,然后我的项目将部署和运行。我该怎么做才能让 Visual Studio 部署我的程序集?
Jon*_*gel 10
我玩了一会儿,想弄清楚这些设置的作用……当我发表评论时,我只提到了我们的设置,而不了解它们;我不是迁移到数据库项目的项目负责人,所以我不熟悉这些东西的细节。
该Model Aware属性需要设置为True。
这个属性的文档很差,但根据我的理解,启用它会将程序集中的对象公开给数据库模型,以便它们可以在 SQLCLR 包装器(即CREATE ... EXTERNAL ...)中使用,并且可以解析引用。如果项目未在模型中包含这些对象,则无法在输出中编写它们的脚本。此外,如果在程序集中存在对对象的引用并且此属性设置为False,则项目将无法生成。
Generate Sql Script我提到的财产处于类似的文档状态。这控制是否将程序集中的公开可见成员自动编写到输出中。我们已禁用它以保留重命名 SQLCLR 包装器的灵活性,并有选择地仅包含我们需要的对象。您设置哪种方式取决于您的判断。
希望这有助于这些属性的公共文档!