Skip to content

Commit

Permalink
Change mechanism for TFM support warnings
Browse files Browse the repository at this point in the history
Apparently when we tried to pack a TFM-specific file called _._ into
buildTransitive to indicate that there were no targets for that TFM,
NuGet arbitrarily decided to pack the targets file from a different TFM
instead ¯\_(ツ)_/¯

Borrow the logic from https://github.com/dotnet/runtime/blob/bb74bb79db53eae474977a0928756a0db7fc6a3f/src/libraries/Microsoft.Extensions.Configuration.Binder/src/buildTransitive/Microsoft.Extensions.Configuration.Binder.targets#L17
as it's easier than overriding NuGet's weird pack behavior.

Fixes #174
  • Loading branch information
mhutch committed Jan 23, 2024
1 parent e324d6b commit 44a3f6e
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 5 deletions.
5 changes: 1 addition & 4 deletions Mono.TextTemplating/Mono.TextTemplating.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,7 @@
<!-- limit to 6.0 so that the MSBuild task can load on .NET 6.0 -->
<PackageReference Include="System.CodeDom" Version="6.0.0" Condition="'$(TargetFramework)'!='net472'" />
<None Include="readme.md" Pack="true" PackagePath="\" />
<None Include="package\Mono.TextTemplating.targets" Pack="true" PackagePath="buildTransitive\net461\Mono.TextTemplating.targets" />
<None Include="package\_._" Pack="true" PackagePath="buildTransitive\net472\_._" />
<None Include="package\Mono.TextTemplating.targets" Pack="true" PackagePath="buildTransitive\netcoreapp2.0\Mono.TextTemplating.targets" />
<None Include="package\_._" Pack="true" PackagePath="buildTransitive\net6.0\_._" />
<None Include="package\Mono.TextTemplating.targets" Pack="true" PackagePath="buildTransitive\Mono.TextTemplating.targets" />
</ItemGroup>

<ItemGroup>
Expand Down
14 changes: 13 additions & 1 deletion Mono.TextTemplating/package/Mono.TextTemplating.targets
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
<Project InitialTargets="NETStandardCompatError_Mono_TextTemplating_net6_0">
<Target Name="NETStandardCompatError_Mono_TextTemplating_net6_0"
Condition="'$(SuppressTfmSupportBuildWarnings)' == ''">
<Warning Text="Mono_TextTemplating doesn't support $(TargetFramework) and has not been tested with it. Consider upgrading your TargetFramework to net6.0 or later. You may also set &lt;SuppressTfmSupportBuildWarnings&gt;true&lt;/SuppressTfmSupportBuildWarnings&gt; in the project file to ignore this warning and attempt to run in this unsupported configuration at your own risk." />
<PropertyGroup>
<_Mono_TextTemplating_Warn_Compat_Tfm
Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'netcoreapp2.0')) AND
!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net6.0'))">
>net6.0</_Mono_TextTemplating_Warn_Compat_Tfm>
<_Mono_TextTemplating_Warn_Compat_Tfm
Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net461')) AND
!$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net462'))"
>net462</_Mono_TextTemplating_Warn_Compat_Tfm>
</PropertyGroup>
<Warning
Condition="'$(_Mono_TextTemplating_Warn_Compat_Tfm)' != ''"
Text="Mono_TextTemplating doesn't support $(TargetFramework) and has not been tested with it. Consider upgrading your TargetFramework to $(_Mono_TextTemplating_Warn_Compat_Tfm) or later. You may also set &lt;SuppressTfmSupportBuildWarnings&gt;true&lt;/SuppressTfmSupportBuildWarnings&gt; in the project file to ignore this warning and attempt to run in this unsupported configuration at your own risk." />
</Target>
</Project>
Empty file removed Mono.TextTemplating/package/_._
Empty file.

0 comments on commit 44a3f6e

Please sign in to comment.