依赖项Microsoft.Composition 1.0.27不支持框架.NETCoreApp,Version = v1.1

时间:2016-11-28 14:10:43

标签: asp.net-core asp.net-core-mvc asp.net-core-1.0

当我将框架部分升级到:

"frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
      },
      "imports": "dnxcore50"
    }
  }

我收到错误

  

依赖Microsoft.Composition 1.0.27不支持框架   .NETCoreApp,版本= 1.1版

“Microsoft.VisualStudio.Web.CodeGeneration.Tools”

:加下划线

2 个答案:

答案 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更新:

要在新的.csproj项目结构中执行此操作,您需要添加

<PackageTargetFallback>$(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8</PackageTargetFallback>

代替。当您确定不使用任何使用其中任何一个的软件包时,可以选择省略dotnet5.6dnxcore50