在使用.netcro3 时有一个警告错误
严重性 代码 说明 项目 文件 行 禁止显示状态
警告 NU1701 已使用“NETFramework,Version=v4.6.1.”而不是项目目标框架“.NETCoreApp,Version=v3.1”还原包“BouncyCastle 1.8.9”。此包可能与项目不完全兼容。 smdemo D\百度云同步盘\开发\接口文档\emo.csproj 1
这个包也显示叹号
但是直接运行控制台程序却是正常的
然后我将其增加一个inteface 输出为类库以后
去注册报错
未能加载文件或程序集“System.Runtime,Version=4.2.2.8,cultrue=neutral PublicKeyToken=b@3f5f7f11d5Ga3a”
PublicKeyToken=b@”或它的某一个依赖项。系统找不到指定的文件。
所以我怀疑就是上面这个包没被加载进去
我想要的结果,可以注册成功,并被delphi 调用接口的方法,用.NETfra开放COM
口的 的测试程序是调用成功的
如果在项目中出现警告 NU1701,表明您在项目中使用了不兼容的依赖包。您需要找到可以与项目目标框架 ".NETCoreApp, Version=v3.1" 兼容的版本并使用。
如果在注册程序时出现错误 "System.Runtime, Version=4.2.2.8, cultrue=neutral PublicKeyToken=b@3f5f7f11d5Ga3a" 或它的某一个依赖项的文件找不到,表明该文件不存在于系统中。您可以考虑检查项目中的引用设置,确保您正在使用最新的可用版本。
在nuget里把BouncyCastle的三方包更新成支持.net core的版本
警告 NU1701 已使用“NETFramework,Version=v4.6.1.”而不是项目目标框架“.NETCoreApp,Version=v3.1”还原包“BouncyCastle 1.8.9”。此包可能与项目不完全兼容。
这个警告已经告诉你,NETCoreApp,Version版本不兼容,需要找到对应的兼容包
该回答引用ChatGPT
_请参考下面的解决方案,如果有帮助,还请点击 “采纳” _
您可以尝试以下解决方案:
1、删除不支持.NET Core 的 BouncyCastle 程序集,并找到支持.NET Core 的替代方案;
2、使用 NuGet 包管理器更新 System.Runtime 包;
3、在 .csproj 文件中更改项目的目标框架,以支持 BouncyCastle 程序集的要求;
4、检查系统上是否已安装 .NET Framework 4.6.1,并在控制台程序上进行相应的配置。
最后,您可以对代码进行更详细的检查,以确保代码是否正确,并与 Delphi 进行适当的集成。
以下答案引用自GPT-3大模型,请合理使用:
我的系统是windows10,net croe是.net 4.7.1
首先,您需要确认BouncyCastle 1.8.9这个包是否与目标框架“.NETCoreApp,Version=v3.1”完全兼容。如果不兼容,可以添加bindingRedirects 节点,将目标框架的版本指向BouncyCastle 1.8.9所需要的目标框架。然后,尝试编译后再次使用开发环境来进行调试,检查是否能够正常注册并被delphi调用接口的方法。
更新BouncyCastle到与.NETCoreApp版本匹配的版本,如果没有可用的.NETCoreApp版本,考虑更改项目的目标框架为.NET Framework。
看一下系统是否匹配,另外 Framework也许会与你下的其他框架冲突,可以更改默认的路径,也可以增加环境变量试一下