当前位置: 首页 > 知识库问答 >
问题:

尝试从.NET核心dll创建程序集时发生SQL Server错误

姜羽
2023-03-14

我正在尝试从SQL Server 2017中的.NET核心dll创建程序集:

CREATE ASSEMBLY my_assembly 
FROM 'C:\Temp\MyDll.dll' WITH PERMISSION_SET = SAFE;

这是dll csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <PlatformTarget>x64</PlatformTarget>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.SqlServer.SqlManagementObjects" Version="161.46041.41" />
  </ItemGroup>   
  
</Project>

当我运行查询时,我得到以下错误:

程序集“MyAssembly”引用的程序集“System.Runtime,Version=4.2.2.0,Culture=Neutral,PublicKeyToken=B03F5F7F11D50A3A.”在当前数据库中不存在。SQL Server试图从引用程序集所在的同一位置定位并自动加载引用的程序集,但该操作失败(原因:%2(系统找不到指定的文件))。请将引用的程序集加载到当前数据库中,然后重试您的请求。

我该怎么修好它?

共有1个答案

嵇丰
2023-03-14

基本上不要那样做。SQL CLR只支持.NET Framework,而且没有计划改变这一点。老实说,我可能只是建议“完全避免它”,而只是使用您的数据库来存储和查询东西。但是如果您真的想(并且您知道这会给您带来多大的痛苦):您必须更改dll以服务器上可用的.NET Framework版本(而不是.NET Core或.NET 5等)为目标。在推动下,您可以以.NET Standard2.0为目标,并使用.NET Framework内部更高版本,但老实说:我不推荐这样做--在.NET Framework中对.NET Standards的大多数支持都是围绕在黑客身上的。

 类似资料:
  • .NET核心和ASP.NET核心到底有什么区别?

  • 我尝试使用shared_ptrs创建一个单例对象。但是,当构造函数/析构函数对特定对象是私有的时,代码不会编译 我正在使用VS17编译器创建的错误如下 错误C2440:":无法从'_Ux*'转换为'std::shared_ptr'与[_Ux=ThreadPool]包含\内存(1462):注意:没有构造函数可以采取源类型,或构造函数重载解决方案是含糊不清的threadpool.cpp(9):注意:请

  • 当我在phoenix中登录sqlline.py或试图通过API在phoenix中创建表时,我会遇到一个异常。 由于我对phenix的知识有限,我无法弄清楚为什么phoenix在创建System.Catalog表之前就要检查它。 StackTrace: *4/11/18 06:07:18警告客户端。HConnectionManager$HConnectionImplementation:预取元表时遇

  • 我正在尝试使用cmd中的以下命令安装Yeoman: 我得到以下信息: 安装了以下内容: Node.jsv4.4.4 npm v2.15.1,v3.9.0(我尝试了两个版本,我有完全相同的输出消息) 我的电脑在Windows7 x64上运行。 我尝试过的解决方案: > 我跑 npm缓存清除 但是没有运气。 我还尝试了以下方法: > 已删除C:\\AppData\Roaming\npm缓存文件夹 在此

  • 在Asp。Net Core 3.1应用程序我有以下关于应用程序设置的部分: 我试图获取一些值,比如Facebook的Id,所以我尝试: 但这行不通。。。我怎样才能得到这些值?

  • 问题内容: 在Windows上安装了Docker,并额外安装了2个Oracle VM VirualBox和Kitematic。我在Windows 10 PC中禁用了Hyper-V。现在的问题是我无法从DockerHub下载任何Docker映像,甚至我都无法以如下方式运行命令 两端都显示以下错误。 尝试连接时发生错误:获取 http:// localhost:2375 / v1.21 / info