c# - 引用 NetStandard 项目的传统控制台应用程序会抛出 FileNotFoundException

标签 c# .net visual-studio-2017 .net-standard

我有 2 个项目(VS 2017 RC)

  • MyLib (NetStandard1.4) - 引用文献Newtonsoft.Json
  • MyConsoleApp(普通、传统控制台应用程序,针对 .Net 4.6.1)- 引用 MyLib 项目

编译后我得到:

MyLib

  • bin\Debug\netstandard1.4\MyLib.dll
  • bin\Debug\netstandard1.4\MyLib.pdb
  • bin\Debug\netstandard1.4\MyLib.deps.json <-- 它包含有关引用 Newtonsoft.Json 的信息

MyConsoleApp

  • bin\Debug\MyLib.dll
  • bin\Debug\MyLib.pdb
  • bin\Debug\MyConsoleApp.exe
  • bin\Debug\MyConsoleApp.exe.config
  • bin\Debug\MyConsoleApp.pdb

MyConosleApp 输出缺少 Newtonsoft.Json。当我运行它时,我收到 FileNotFoundException (Newtonsoft.Json.dll)。

如何使其工作(无需将 MyConosleApp 迁移到网络核心)?

最佳答案

根据 Andrew Cahill 的建议,我在 GitHub 上找到了这个帖子:

https://github.com/NuGet/Home/issues/4488

看起来这是一个错误,他们会修复它。解决方法是将以下代码复制粘贴到传统应用程序 .csprj 文件中。 (无需修改代码片段)

  <ItemGroup>
    <PackageReference Include="Legacy2CPSWorkaround" Version="1.0.0">
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
  </ItemGroup>

它以某种方式鼓励 VS 获取所有引用项目的依赖项。

关于c# - 引用 NetStandard 项目的传统控制台应用程序会抛出 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577721/

相关文章:

c# - 访问 IOption 类中 appsettings.json 文件中存储的键值对

c# - System.Diagnostics.Process 实例可以被垃圾收集吗?

c# - 在 Roslyn 与 Microsoft.CodeAnalysis 中添加元数据引用

ios - 尝试选择Xamarin代理时,必须接受Xcode许可证错误

c# - 在 C# 中写入特定路径中的文本文件?

c# - 使用多个 ServicePointManager.SecurityProtocol,它首先尝试什么?

c# - 'Service Reference' 和 'Web Reference' 之间的不同行为

c# - 将带有 "+"的字符串值发布到操作用空格替换值

tfs - 如何将 Visual Studio 2017 添加到 Team Foundation Server 构建代理?

vb.net - 应用程序处于中断模式 - 无法确定原因