首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NuGet包中断为“无法加载文件或程序集”

NuGet包中断为“无法加载文件或程序集”
EN

Stack Overflow用户
提问于 2021-08-22 22:57:08
回答 1查看 1.7K关注 0票数 1

我有NuGet包(.Net标准2.0),它通过PackageReference引用Newtonsoft.Json v13.0.1 (所谓的新方法)。包装的时候一切都很好。在VSIX项目中安装显示,Newtonsoft也将被下载并成功构建。当VSIX项目(.Net满4.8)运行和使用Newtonsoft中断与消息Could not load file or assembly 'Newtonsoft.JSON, Version=13.0.0.0, ...' or one of its dependencies. The system cannot find the file specified.的方法时发生错误

我尝试过不同的方法(没有一种有效):

  • 手动将Newtonsoft.Json.dll复制到下载包中的libs文件夹。
  • 强制在VSIX项目中安装Newtonsoft.JSON

NuGet项目可以找到这里和VSIX项目这里

有什么想法吗?

更新:

我已经从Newtonsoft改为System.Text.Json来尝试一下,但是错误并没有改变。

EN

Stack Overflow用户

发布于 2021-08-23 13:36:15

因此,从错误消息中,问题是无法找到/加载NuGet包、相关文件或依赖项。因此,原因应该是特定的NuGet包不存在,或者不在特定的文件夹/目录中,或者路径没有被指出。或者有几个不同版本的相同的NuGet包使用混合。

由于不确定您的项目/解决方案结构,我假设您有一个基于.net标准的项目,并将其打包到一个NuGet包中。您还将它安装在一个VSIX项目中,在这个VSIX项目中,您使用了来自Newtonsoft.json NuGet包的方法,该方法在您的.net标准项目中引用。

的第一件事就是手动将正确的Newtonsoft.Json.dll版本(通常在C:\Users\[user name]\.nuget\packages\newtonsoft.json\13.0.1\lib\...中)复制到VSIX项目文件夹中。VSIX项目文件夹目录应该类似于这个XXXX\XXXX\[your project folder name]\bin\Debug(or Release, depend on which mode you are using)

其他建议:

转到Tools > Options > NuGet Package > General >单击并选中Allow NuGet to download missing packagesAutomatically check for missing packages during build in Visual Studio复选框,然后单击Clear All NuGet Cache(s)按钮> OK。在此之后重建并重新运行您的VSIX项目。

如果以上所述无效,请您与我分享一些步骤,以便复制您的问题并进一步检查:)

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68885742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档