【问题标题】:SQL CLR no longer deploys to SQL 2008SQL CLR 不再部署到 SQL 2008
【发布时间】:2014-04-06 06:48:14
【问题描述】:

我有一个将存储过程部署到服务器的 SQL CLR 项目。 2 年来,我一直能够右键单击项目并进行部署。昨天,当我尝试这样做时,我开始出现错误。上周我能够部署新版本,但本周不行。

 ------ Build started: Project: '', Configuration: Debug Any CPU ------
  '' -> E:\Development\Code\SqlDeployables\''\bin\Debug\''.dll
------ Deploy started: Project: '', Configuration: Debug Any CPU ------
Error: Class not registered.
Looking for object with CLSID: {475E0C1F-1E61-4197-9324-10A148C512F8}.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========

我一直在四处寻找,找不到任何有关错误的信息。自从我上次部署以来,sql server 上没有任何更新。我已经在我的机器上卸载了我的 VS2010 更新和 .net 更新,但没有做任何事情。我没有卸载的唯一更新是办公室更新,我认为这不是问题。

有什么想法吗?我试过在 sql 机器上重置权限。手动删除存储过程并重新部署。我已经回到项目的先前版本并尝试部署。重新启动计算机上的 SQL Server 服务。

Visual Studio 2010 SQL Server 2008

谢谢

【问题讨论】:

    标签: c# sql .net visual-studio-2010 clrstoredprocedure


    【解决方案1】:

    不知何故,您的 Visual Studio 安装搞砸了。该 CLSID 指向 com 对象 C:\Windows\system32\mscoree.dll 中的类 Microsoft.VisualStudio.Data.Schema.Package.Sql.Internal.ManagedBuildLoggerComClass

    我建议尝试在 Visual Studio 上进行修复安装,看看是否能解决您的问题。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但我不知道如何解决它。我认为它可能与 VS2012 的并行安装有关,但我不确定。

      作为一种解决方法,我编写了自己的 T-SQL 部署脚本。该项目可以正常构建,并且可以正常输出dll。所缺少的只是数据库部署(即 VS 针对数据库运行的命令,以将您的类型和方法实际部署到服务器)。在项目的 bin 文件夹中,您可能会找到 VS 生成的 .sql 文件;您可以将其用作模板。部署脚本最终将如下所示:

      USE SomeDatabase
      GO
      
      IF OBJECT_ID('dbo.[SomeFunction]') IS NOT NULL DROP FUNCTION dbo.[SomeFunction]
      IF EXISTS (SELECT * FROM sys.assemblies WHERE NAME = 'SomeAssembly') DROP ASSEMBLY [SomeAssembly]
      GO
      
      CREATE ASSEMBLY [SomeAssembly] AUTHORIZATION dbo
      FROM '\path\to\your\dll'
      WITH PERMISSION_SET = SAFE
      GO
      
      CREATE FUNCTION [dbo].[SomeFunction] ....
      EXTERNAL NAME [SomeAssembly].[SomeAssembly.UserDefinedFunctions].[SomeMethod]
      GO
      

      然后通过 SSMS 手动部署你的东西。

      【讨论】:

        猜你喜欢
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 2013-07-08
        • 1970-01-01
        • 2016-02-21
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        相关资源
        最近更新 更多