Nuget包在使用.NETStandard时不会被复制到输出目录

9
我想在一个WPF (.NET 4.6)应用程序和一个.NET Core应用程序之间共享一个项目。为此,我首先创建了一个便携式库,然后在Visual Studio 2015中将其转换为.NETStandard版本1.3,从而制作了一个.NET Standard库。
然而,.NETStandard库需要引用Entity Framework(例如),因此我已经在project.json中添加了这个依赖项,并且一切都很愉快地构建完成。但是,当我实际运行应用程序并尝试使用Entity Framework库加载数据时,我会立即收到文件未找到异常。这是可以预料的,因为在使用.NETStandard时,没有将nuget软件包复制到输出目录(不像使用普通.NET),因此我可以理解异常的原因。
我应该如何修复这个问题/使得nuget依赖项在使用.NETStandard库并从.NET 4.6项目中进行引用时被复制到输出目录?(以下是我的project.json,如果需要,我很乐意添加更多代码)。
{
  "supports": {},
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Design": "1.1.0",
    "Microsoft.EntityFrameworkCore.Sqlite": "1.1.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.1"
   },
  "frameworks": {
    "netstandard1.3": {}
  }
}

切换到Visual Studio 2017 RC,这是Windows上唯一简化项目引用场景的环境。 - Lex Li
1个回答

4

微软终于承认这是一个问题,并将在NuGet 4.0.1版本中解决它,这是VS 2017发布后NuGet 4的第一个更新。

现在最干净的解决方法是将<RestoreProjectStyle>PackageReference</RestoreProjectStyle>添加到旧项目中。

然而,根据Rob Relyea的说法,微软将在RTM后忽略此属性,因此另一个解决方法是<PackageReference Update="PlaceholderToConvinceThisProjectToGetTransitivePackageReferenceFromProjectReferences"/>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接