NuGet / Home

Repo for NuGet Client issues
Other
1.5k stars 252 forks source link

msbuild /t:pack does not include conditionally included pack content #6792

Open rainersigwald opened 6 years ago

rainersigwald commented 6 years ago

From @jsmarcus on April 8, 2018 13:43

Steps to reproduce

Packing a multi-targeted library with the conditionally included ItemGroup does not include the specified content files. If the condition is removed it includes the content but for all TFMs.

Project file

<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0">

  <PropertyGroup>
    <TargetFrameworks>netstandard1.3;netstandard2.0;Xamarin.iOS10;MonoAndroid80;uap10.0.16299</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <FontFiles Include="*.otf;*.ttf" />
  </ItemGroup>

  <ItemGroup Condition=" $(TargetFramework.StartsWith('Xamarin.iOS')) ">
    <BundleResource Include="@(FontFiles)" Pack="true" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="MSBuild.Sdk.Extras" Version="1.3.0" PrivateAssets="All" />
  </ItemGroup>

  <Import Project="$(MSBuildSDKExtrasTargets)" Condition="Exists('$(MSBuildSDKExtrasTargets)')" />

</Project>

Directory contents:

/
- font.ttf

Command line

msbuild /t:pack

Expected behavior

font.ttf is included in the content and contentFiles portion of the nuspec/nupkg but only for the conditional target framework (in this case Xamarin.iOS10).

Actual behavior

font.ttf is not included as content at all.

Environment data

msbuild /version output: Microsoft (R) Build Engine version 15.6.85.37198 for .NET Framework Copyright (C) Microsoft Corporation. All rights reserved.

15.6.85.37198

OS info: Edition: Windows 10 Pro Version: 1803 Build: 17133.1

If applicable, version of the tool that invokes MSBuild (Visual Studio, dotnet CLI, etc): Visual Studio Professional 2017 Version 15.6.5

Copied from original issue: Microsoft/msbuild#3173

rainersigwald commented 6 years ago

Thanks for the report. I'm going to move this to the NuGet repo since that's where these targets come from.

rohit21agrawal commented 6 years ago

documentation to include conditionally referenced content is available here: https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets#advanced-extension-points-to-create-customized-package

mishra14 commented 6 years ago

@jsmarcus please let us know if you are still blocked on this.

rohit21agrawal commented 6 years ago

@mishra14 keep the issue open as we should still fix the case that was reported in the OP. my comment is a workaround so @jsmarcus can get unblocked

mishra14 commented 6 years ago

@rohit21agrawal Thanks for pointing that out.

jsmarcus commented 6 years ago

Thank you @rohit21agrawal that has allowed me to create the package. I agree that the issue reported should be fixed as well.

nkolev92 commented 2 years ago

Related to dotnet/sdk/issues/1479 as well.

There some stuff about the defaults that makes things challenging.

mhmd-azeez commented 2 years ago

I have also run into this issue and would love to see it fixed