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

ven*_*eis 7 c# csproj visual-studio 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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

好的:没有编译错误!

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

便携式类库目标

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

{
  "supports": {},
  "dependencies": {
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1",
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.3": {}
  }
}
Run Code Online (Sandbox Code Playgroud)

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

德国错误

我真的不是专家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.

Tho*_*röm 9

你需要Diagnostics.ToolsResources.ResourceManager.

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

  • "System.Diagnostics.Tools":"4.3.0-preview1-24530-04"
  • "System.Resources.ResourceManager":"4.3.0-preview1-24530-04"

  • 我相信它会很高兴你明白了 (2认同)