【问题标题】:library import in another project generates error with .net5另一个项目中的库导入使用 .net5 生成错误
【发布时间】:2021-12-14 02:40:44
【问题描述】:

我有一个内置于 net5 的库,我通过 nuget Portable BouncyCastle (https://www.nuget.org/packages/Portable.BouncyCastle/) 添加了它,它不会引发任何编译错误我什至可以毫无问题地使用所述库的类,当我将我的库导入到同样内置于 net5 的 Web 应用程序中,这里会抛出以下错误

FileNotFoundException:无法加载文件或程序集“BouncyCastle.Crypto,版本 = 1.9.0.0,文化 = 中性,PublicKeyToken = 0e99375e54769942”。系统找不到指定的文件。不知道会不会很快有人知道错误原因

这个错误发生在我使用 Newtonsoft.Json 等其他库时,所以我认为它不是 Portable BouncyCastle 库

感谢您的宝贵时间。

【问题讨论】:

  • 您需要提供更多信息。您如何将 BouncyCastle 包含到您的项目中(NuGet?)。项目中的引用是什么样的(它的属性)?程序集的名称是否正确(完整的强名称)并在正确的位置?您如何将程序集“导入”到 Web 应用程序中?
  • 您好,感谢您的回答,我正在通过指向包含通过 NuGet 导入的 BouncyCastle 的库生成的 dll 的项目引用导入我的库

标签: c# .net-5 asp.net5


【解决方案1】:

您使用的是 teamcity 对吗?你找到解决办法了吗?

我也在为同样的事情苦苦挣扎, 但我通过使用 dotnet cli 让它在本地工作

dotnet pack -c release -o C:\temp

现在我可以看到 nuspec 中的依赖关系

编辑

如果您使用的是 teamcity:

我们刚刚迁移到 .net 6 就取得了成功

使用 .net 包而不是 nuget 包: 然后,您需要在常规设置中为相应的构建配置选择工件路径。

Security\bin\Release\net5.0\Security-V2.1.0.1.nupkg

上面看到的版本号要和你在.csproj中设置的一样,有点麻烦。

不要使用 .net 步骤中建议的版本后缀,这将在 nuspec 中向版本属性添加“破折号”,这是不允许的,并且该包将在 Nuget 管理器中不可见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 2011-08-05
    • 2016-09-19
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多