Nuget 如何引用UWP+;NET 4.6控制台应用程序中的NET46便携库?

Nuget 如何引用UWP+;NET 4.6控制台应用程序中的NET46便携库?,nuget,visual-studio-2015,portable-class-library,.net-4.6,project.json,Nuget,Visual Studio 2015,Portable Class Library,.net 4.6,Project.json,我有一个面向.NET4.6和通用Windows平台的可移植类库项目。此类库仅包含一个类,其构造函数中包含以下代码行: Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString())); 现在,我在同一个解决方案中创建了一个新的.NET4.6控制台应用程序项目,并向可移植类库添加了一个项目引用。调用包含上述代码行的方法会在运行时导致以下异常: Could not load file or

我有一个面向.NET4.6和通用Windows平台的可移植类库项目。此类库仅包含一个类,其构造函数中包含以下代码行:

Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()));
现在,我在同一个解决方案中创建了一个新的.NET4.6控制台应用程序项目,并向可移植类库添加了一个项目引用。调用包含上述代码行的方法会在运行时导致以下异常:

Could not load file or assembly 'System.IO.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
我做错了什么?没有编译时错误或警告

我尝试过的事情:手动添加缺少的(?)NuGet包 似乎System.IO.FileSystem是通过NuGet提供的一个库,是Microsoft.NETCore mega包的一部分。好的,也许我需要显式地将这个包添加到任何使用我的可移植类库的项目中。我试图这样做

Could not install package 'Microsoft.NETCore.Platforms 1.0.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
这种方法运气不好

我尝试过的事情:创建一个project.json文件 虽然网络上没有明确的信息,但我读了一些关于基于project.json的NuGet harness或build系统的花絮。为了进行实验,我在控制台应用程序项目中创建了以下project.json文件:

{
  "dependencies": {
   },
  "frameworks": {
    "net46": { }
  },
  "runtimes": {
    "win-anycpu": { }
  }
}
它起作用了!运行时错误消失了!然而,我很快发现,这不是正确的解决方案,也不是一个完整的解决方案。我开始编写一些代码来读取配置节值,这涉及到使用
IConfigurationSectionHandler
接口,并得到以下编译时错误:

error CS0246: The type or namespace name 'IConfigurationSectionHandler' could not be found (are you missing a using directive or an assembly reference?)
此接口是系统部件的一部分。我看到对此程序集的引用,但它有一个黄色感叹号图标,警告窗口中会显示一条警告:

The referenced component 'System' could not be found.

这就是我失去创意的地方。我是否遗漏了一些显而易见的东西?

我找到了解决办法。我最初的尝试是将Microsoft.NETCore软件包安装到控制台应用程序中,结果出现了我的原始帖子中显示的错误


但是,如果我只安装范围很窄的软件包,例如System.IO.FileSystem,那么我就成功了,应用程序也能正常工作。显然,Microsoft.NETCore“主程序包”有一些特殊之处,使其无法正确安装到相关项目中。

嗯,不难重新安装。针对dnx现在是相当勇敢的,它是beta质量。您可以通过从dnx运行时目录复制System.IO.FileSystem.dll和System.IO.FileSystem.Primitives.dll来勉强前行,但这远远不够理想。只是为了他们能修复它。@HansPassant DNX不需要复制它,所以它看起来与DNX无关。即使我拿出DNX,一切都是一样的。我对我的问题进行了编辑,以消除这一潜在的混乱点。我不知道为什么这一点以前被否决了。这对我来说很有吸引力。我遇到了一个类似的问题,我无法从.NET 4.6应用程序中引用Win 8.1库项目——这个答案与此相关吗?