当我将框架部分升级到:
时"frameworks": {
"netcoreapp1.1": {
"dependencies": {
},
"imports": "dnxcore50"
}
}
我收到错误
依赖Microsoft.Composition 1.0.27不支持框架 .NETCoreApp,版本= 1.1版
用
“Microsoft.VisualStudio.Web.CodeGeneration.Tools”
:加下划线
答案 0 :(得分:15)
如果您正在处理csproj文件,可以编辑它们并添加以下行:
<PackageTargetFallback>$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback>
结果应如下所示:
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
<PackageTargetFallback>$(PackageTargetFallback);dotnet5.6;portable-net45+win8</PackageTargetFallback>
</PropertyGroup>
这是VS转换器在将project.json升级到csproj时的工作方式。如果您需要其他目标,可以将project.json文件转换为csproj文件并查看输出。
答案 1 :(得分:5)
Microsoft.Composition支持.NET Framework 4.5,Windows 8和WindowsPhone 8.1以及其他目标,这意味着它应该可行。
但它并没有明确地定位netstandard1.x
netcoreapp1.x
,所以你需要通过导入部分告诉nuget还恢复以上述平台为目标的PCL库:
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
},
"imports": ["dnxcore50", "portable-net45+win8"]
}
}
"portable-net45-win8"
部分告诉它,还要恢复使用.NET 4.5和Windows 8目标的PCL,因为它们应该在99%的.NET Core中运行(Windows运行时基于System.Runtime和.NET Core也是如此,这就是它工作的原因)。
但是从不使用import
来恢复至少不支持win8 / wpa8和net45的非PCL或PCL。
要在新的.csproj
项目结构中执行此操作,您需要添加
<PackageTargetFallback>$(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8</PackageTargetFallback>
代替。当您确定不使用任何使用其中任何一个的软件包时,可以选择省略dotnet5.6
和dnxcore50
。