【问题标题】:Error when deploying a SQL project with Visual Studio 2008使用 Visual Studio 2008 部署 SQL 项目时出错
【发布时间】:2013-05-06 13:55:06
【问题描述】:

使用 Visual Studio 2008 部署 SQL 项目时,我们会创建一个 .sql 文件。

在项目属性中,我们设置了部署操作:创建部署脚本。在构建和部署项目时,会按预期生成 .sql。检查生成的代码时,我看到以下 SQL 代码:

创建程序集 [System.Core] 授权 [dbo] 从 0x4D5A9.... WITH PERMISSION_SET = 安全;

执行这段代码会抛出以下错误。

CREATE ASSEMBLY 失败,因为程序集“System.Core”是系统程序集。考虑创建一个用户程序集来包装所需的功能。

为什么首先生成此代码,如何防止生成此代码? (据我所知,我们在项目中没有任何 SQLCLR 存储过程或 LINQ)

【问题讨论】:

    标签: sql sql-server visual-studio-2008 deployment assemblies


    【解决方案1】:

    我不确定 VS2008,但是在 VS2012 中有一个 SQLCLR 选项卡在数据库项目属性窗口中。页面底部的选项之一是标记为Generate DDL 的复选框。如果选中此项,请取消选中,然后再次构建并生成脚本。

    How to: Work with CLR Database Objects 的第三段陈述:

    CLR 和 CLR Build 属性页包含许多使用设置 项目中的 CLR 数据库对象。具体来说,CLR 属性 页面有一个权限级别设置来设置CLR的权限 部件。它还具有“生成 DDL”设置来控制是否 为添加到项目的 CLR 数据库对象生成 DDL。 CLR Build 属性页包含您使用的所有编译器选项 可以在项目中设置配置CLR代码的编译。这些 可以通过右键单击您的项目来访问属性页 解决方案资源管理器并选择属性

    有关数据库项目属性中的 SQLCLR 选项的详细信息,请参阅 MSDN 文章:http://msdn.microsoft.com/en-us/library/hh272681(v=vs.103).aspx#bkmk_sqlclr_sqlclrbuild

    【讨论】:

    • 感谢您的回答。这听起来像是我正在寻找的答案。当我回到办公室时,我会搜索复选框并回复您。
    • 我已经检查了 Visual Studio 2008 中的项目设置,但我找不到选项 Generate DDL
    • 在数据库项目中,References下有没有对System.Core的引用?如果是这样,请将其删除并重试。
    • References下没有System.Core.dll的引用。
    • 另一个想法!运行部署脚本的数据库服务器是否与“数据库项目设置”下列出的数据库服务器版本相同?我隐约记得 CREATE ASSEMBLY 是为 MSSQL 2005 编写的,但不是为 MSSQL 2008 编写的,因为 2008 已经包含 CLR dll。所以问题可能会出现,因为您的数据库项目指定 2005 并且您正在部署到 2008。
    猜你喜欢
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多