ventiseis
ventiseis

Reputation: 3099

Why can't I use embedded resources (resx) when targeting .netstandard 1.3?

(Question subtitle: Are resources not supported in .netstandard 1.3 or is my project file just messed up?)

I just created an example portable class library in Visual Studio 2015 Update 3 and added a sample resource file. Initially, the file project.json looks like this:

{
  "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"
    }
  }
}

Fine: No compile errors!

After that, I used the project properties to target .NETStandard 1.3.

portable class library target

Now project.json looks like this:

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

Now I get the following build error - which means basically the the build action EmbeddedRessource is not supported:

german error

I'm really no expert with project.json, but for me the things look inconsistent - and I have no idea, where the problem is.

For me, this seems like netstandard isn't only about the available libraries, tooling seems involved, too. But that does not explain, why it worked for dnxcore50.

Upvotes: 8

Views: 3782

Answers (1)

Thomas Hagström
Thomas Hagström

Reputation: 4528

You need Diagnostics.Tools and Resources.ResourceManager.

I got this working (for .NET Standard 1.4 though) by installing the pre versions, at this time:

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

Upvotes: 9

Related Questions