C# 无法部署sql clr存储过程(无法验证元数据)
我正在尝试在SQL Server 2008上为SQL CLR(.Net 3.5)程序集运行CREATE ASSEMBLY命令。它返回一条神秘的错误消息:C# 无法部署sql clr存储过程(无法验证元数据),c#,sql,sql-server,stored-procedures,sqlclr,C#,Sql,Sql Server,Stored Procedures,Sqlclr,我正在尝试在SQL Server 2008上为SQL CLR(.Net 3.5)程序集运行CREATE ASSEMBLY命令。它返回一条神秘的错误消息: An error occurred while gathering metadata from assembly 'My.Awesome.Assembly' with HRESULT 0x80004005. 它为什么要这样做,我如何在不将其部署为不安全的情况下修复它 我已采取的步骤: 遵守所有的规则 没有使用静态字段 已经创建了另外两个部署
An error occurred while gathering metadata from assembly 'My.Awesome.Assembly' with HRESULT 0x80004005.
它为什么要这样做,我如何在不将其部署为不安全的情况下修复它
我已采取的步骤:
这就是为我解决问题的原因;对于任何人来说,SQL CLR都是非常非常挑剔的 我有一个这样的构造函数:
public MyObject(IEnumerable<T> items)
{
_innerItems = items.ToDictionary(i => i.Key);
}
公共MyObject(IEnumerable项)
{
_innerItems=items.ToDictionary(i=>i.Key);
}
我把它改成这样:
public MyObject(IEnumerable<T> items)
{
_innerItems = new Dictionary<int, T>();
foreach (var item in items)
{
_innerItems.Add(item.Key, item);
}
}
公共MyObject(IEnumerable项)
{
_innerItems=新字典();
foreach(项目中的var项目)
{
_innerItems.Add(item.Key,item);
}
}
然后它就可以部署了。然后我继续把头撞在桌子上。两种方法,功能等效;一个可以工作,另一个有一条隐藏的部署错误消息。您是否在ILDASM或Refelctor中看到程序集的内容!可能会有帮助。你能提供更多关于程序集中代码的信息吗?另外,请参阅本文-