C# SQL CLR不再部署到SQL 2008

C# SQL CLR不再部署到SQL 2008,c#,sql,.net,visual-studio-2010,clrstoredprocedure,C#,Sql,.net,Visual Studio 2010,Clrstoredprocedure,我有一个SQLCLR项目,它将存储的进程部署到服务器上。两年来,我一直能够右键单击项目并进行部署。昨天,当我尝试这样做时,我开始犯错误。我上周能够部署一个新版本,但本周不行 ------ Build started: Project: '', Configuration: Debug Any CPU ------ '' -> E:\Development\Code\SqlDeployables\''\bin\Debug\''.dll ------ Deploy started: Pr

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

 ------ 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更新,但没有做任何事情。我唯一没有卸载的更新是office更新,我认为这不是问题所在

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

VisualStudio2010 SQL Server 2008


谢谢

不知怎的,你的visual studio安装搞砸了。该CLSID指向com对象
C:\Windows\system32\mscoree.dll
中的类
Microsoft.VisualStudio.Data.Schema.Package.Sql.Internal.ManagedBuilderLoggerComClass


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

我也遇到了同样的问题,但我不知道如何解决它。我认为它可能与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手动部署您的东西