2017-05-03 20 views
2

我有一个目标2个框架dotnet的一个核心项目:使用DOTNET构建-c释放-f net45DOTNET包针对多种框架

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
     <TargetFramework>netcoreapp1.0;net45</TargetFramework> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'" /> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> 
     <DocumentationFile></DocumentationFile> 
     <LangVersion>6</LangVersion> 
    </PropertyGroup> 
    <ItemGroup> 
     <Folder Include="parser\parser\llparser" /> 
     <Folder Include="parser\syntax" /> 
    </ItemGroup> 
</Project> 

| netcoreapp1.0我可以建立我的类库所需framewok。 但我找不到如何使用dotnet-pack命令做同样的事情。我失败并伴随下面的错误:

C:\Program Files\dotnet\sdk\1.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.TargetFrameworkInference.targets(84,5): error : Cannot infer TargetFrameworkIdentifier and/or TargetFrameworkVersion from TargetFramework='netcoreapp1.0'. They must be specified explicitly. [C:\Users\olduh\sly\sly\sly\sly.csproj] 

有没有一种方法可以在构建nuget包时使用多目标框架?

感谢您的回答,

奥利维尔

+0

结果显示错误信息是误导性的,我打开了一个PR来修复它被切断https://github.com/dotnet/sdk/pull/1173 –

回答

3

对于多目标,使用复数TargetFrameworks属性来提供框架的列表。 TargetFramework(单数)只接受一个框架。如果您在属性名称上修复了丢失的sdotnet pack -c Release应该按预期工作 - 无需指定任何框架参数。

添加其他框架时,您可能没有更新该属性。通过指定-f选项,您已覆盖此属性以使其正常工作,但我想dotnet build将失败并出现相同的错误。

+0

感谢Martin,它完成了这项工作。 –