2017-05-03 18 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,它完成了這項工作。 –