【发布时间】:2016-06-30 19:29:24
【问题描述】:
(问题副标题:.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。
现在project.json 看起来像这样:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.3": {}
}
}
现在我收到以下构建错误 - 这意味着基本上不支持构建操作 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。
【问题讨论】:
-
我怀疑这与通用 Windows 应用程序不使用
resx文件这一事实有关。但是:通用 Windows 应用程序与netstandard 1.4及更高版本兼容... -
您对 resx 部分的看法是正确的,但 UWP 实际上与
netstandard1.4兼容并且更低而不是更高。 -
你说得对,我看了the matrix并误解了箭头。但它甚至写在那里:如果库面向 .NET Platform Standard 1.3 版,它只能在 .NET Framework 4.6 或更高版本、.NET Core、通用 Windows 平台 10 (UWP) 和 Mono/Xamarin 平台上运行.
标签: c# visual-studio csproj project.json