我有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文件夹。Newtonsoft.JSON
。有什么想法吗?
更新:
我已经从Newtonsoft
改为System.Text.Json
来尝试一下,但是错误并没有改变。
发布于 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 packages
和Automatically check for missing packages during build in Visual Studio
复选框,然后单击Clear All NuGet Cache(s)
按钮> OK。在此之后重建并重新运行您的VSIX项目。
如果以上所述无效,请您与我分享一些步骤,以便复制您的问题并进一步检查:)
https://stackoverflow.com/questions/68885742
复制相似问题