使用.NETStandard时,不会将Nuget包复制到输出

Lau*_*ery 8 .net c# .net-core .net-standard-1.5

我想在WPF(.NET 4.6)应用程序和.NET Core应用程序之间共享项目.为此,我通过最初创建一个可移植的库并在Visual Studio 2015中将其转换为.NETStandard 1.3版来创建.NET标准库.

但是,.NETStandard库需要引用Entity Framework(例如),所以我在project.json中添加了这个依赖项,所有内容都很愉快.但是,当我实际运行应用程序时,只要实际尝试使用Entity Framework库加载数据,我就会收到File Not Found异常.这是预期的,因为使用.NETStandard时没有任何nuget包被复制到输出目录(不像使用nuget用于普通的.NET),所以我可以看到异常的原因.

当使用.NETStandard库并从.NET 4.6项目引用时,如何解决此问题/获取要复制到输出的nuget依赖项?(下面是我的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": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

Sou*_*rer 4

Microsoft 最终承认这是一个问题,并将在 NuGet 版本 4.0.1 中修复它,这是 VS 2017 发布后 NuGet 4 的首次更新。

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

然而,据 Rob Relyea 称, MS 在 RTM 后将忽略此属性,因此另一种解决方法是<PackageReference Update="PlaceholderToConvinceThisProjectToGetTransitivePackageReferenceFromProjectReferences"/>