为什么我不能在定位.netstandard 1.3时使用嵌入资源(resx)?

时间:2016-06-30 19:29:24

标签: c# visual-studio csproj project.json

(问题小标题:.netstandard 1.3中不支持资源,或者我的项目文件是否搞砸了?)

我刚刚在Visual Studio 2015 Update 3中创建了一个示例可移植类库,并添加了一个示例资源文件。最初,文件project.json如下所示:

{
  "supports": {
    "net46.app": {},
    "uwp.10.0.app": {},
    "dnxcore50.app": {}
  },
  "dependencies": {
    "Microsoft.NETCore": "5.0.0",
    "Microsoft.NETCore.Portable.Compatibility": "1.0.0"
  },
  "frameworks": {
    "dotnet": {
      "imports": "portable-net452+win81"
    }
  }
}

好的:没有编译错误!

之后,我使用项目属性来定位.NETStandard 1.3

portable class library target

现在project.json看起来像这样:

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.3": {}
  }
}

现在我收到以下构建错误 - 这意味着基本上不支持构建操作EmbeddedRessource

german error

我真的不是project.json的专家,但对我而言,事情看起来不一致 - 我不知道问题出在哪里。

    第一个project.json中的
  • :如果我支持net46,为什么要导入net452
  • 第二个project.json中的
  • :如果我使用netstandard1.3,为什么版本1.6中的库存在依赖关系?
  • 最后,.NETPortable, Version=v5.0是什么? .NET Core的重命名已于今年年初重新命名 - 为什么我们仍然引用版本5.0?即使MSDN不知道<TargetFrameworkVersion>5.0</TargetFrameworkVersion>
  • 中指定的csproj

对我来说,这似乎netstandard不仅仅是关于可用的库,工具似乎也参与其中。但这并没有解释,为什么它适用于dnxcore50

1 个答案:

答案 0 :(得分:8)

您需要Diagnostics.ToolsResources.ResourceManager

我现在通过安装 pre 版本来实现这一目的(对于.NET Standard 1.4):

  • &#34; System.Diagnostics.Tools&#34;:&#34; 4.3.0-preview1-24530-04&#34;
  • &#34; System.Resources.ResourceManager&#34;:&#34; 4.3.0-preview1-24530-04&#34;