Include bundled tools in layout

This commit is contained in:
Daniel Plaisted 2018-11-13 15:04:44 -08:00
parent b395776e87
commit 0bf42114de
6 changed files with 72 additions and 23 deletions

View file

@ -1,9 +0,0 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition=" '$(IncludeAspNetCoreRuntime)' != 'false' ">
<BundledDotnetTools Include="dotnet-dev-certs" Version="$(DotnetDevCertsPackageVersion)" />
<BundledDotnetTools Include="dotnet-ef" Version="$(DotnetEfPackageVersion)" ObsoletesCliTool="Microsoft.EntityFrameworkCore.Tools.DotNet" />
<BundledDotnetTools Include="dotnet-sql-cache" Version="$(DotnetSqlCachePackageVersion)" ObsoletesCliTool="Microsoft.Extensions.Caching.SqlConfig.Tools" />
<BundledDotnetTools Include="dotnet-user-secrets" Version="$(DotnetUserSecretsPackageVersion)" ObsoletesCliTool="Microsoft.Extensions.SecretManager.Tools" />
<BundledDotnetTools Include="dotnet-watch" Version="$(DotnetWatchPackageVersion)" ObsoletesCliTool="Microsoft.DotNet.Watcher.Tools" />
</ItemGroup>
</Project>

View file

@ -1,14 +0,0 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" />
<PropertyGroup>
<OutputType>Library</OutputType>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="$(TemplateFillInPackageName)" Version="$(TemplateFillInPackageVersion)" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -5,12 +5,17 @@
<CopyBuildOutputToPublishDirectory>false</CopyBuildOutputToPublishDirectory>
</PropertyGroup>
<ItemGroup>
<None Include="targets\LayoutTool.csproj" />
</ItemGroup>
<Import Project="targets\BuildCoreSdkTasks.targets" />
<Import Project="targets\GetRuntimeInformation.targets" />
<Import Project="targets\Versions.targets" />
<Import Project="targets\SetBuildDefaults.targets" />
<Import Project="targets\Branding.targets" />
<Import Project="targets\BundledTemplates.targets" />
<Import Project="targets\BundledDotnetTools.targets" />
<Import Project="targets\GenerateBundledVersions.targets" />
<Import Project="targets\GenerateLayout.targets" />
<Import Project="targets\FileExtensions.targets" />

View file

@ -0,0 +1,39 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition=" '$(IncludeAspNetCoreRuntime)' != 'false' ">
<BundledDotnetTool Include="dotnet-dev-certs" Version="$(DotnetDevCertsPackageVersion)" />
<BundledDotnetTool Include="dotnet-ef" Version="$(DotnetEfPackageVersion)" ObsoletesCliTool="Microsoft.EntityFrameworkCore.Tools.DotNet" />
<BundledDotnetTool Include="dotnet-sql-cache" Version="$(DotnetSqlCachePackageVersion)" ObsoletesCliTool="Microsoft.Extensions.Caching.SqlConfig.Tools" />
<BundledDotnetTool Include="dotnet-user-secrets" Version="$(DotnetUserSecretsPackageVersion)" ObsoletesCliTool="Microsoft.Extensions.SecretManager.Tools" />
<BundledDotnetTool Include="dotnet-watch" Version="$(DotnetWatchPackageVersion)" ObsoletesCliTool="Microsoft.DotNet.Watcher.Tools" />
</ItemGroup>
<ItemGroup>
<BundledDotnetTool Update="@(BundledDotnetTool)">
<PackagePathRelativeToPackageRoot>%(Identity)/%(Version)/</PackagePathRelativeToPackageRoot>
<RestoredPackagePath>$(NuGetPackageRoot)$([MSBuild]::ValueOrDefault('%(PackagePathRelativeToPackageRoot)', '').ToLower())/</RestoredPackagePath>
<NupkgPathRelativeToPackageRoot>%(Identity)/%(Version)/%(Identity).%(Version).nupkg</NupkgPathRelativeToPackageRoot>
<RestoredNupkgPath>$(NuGetPackageRoot)$([MSBuild]::ValueOrDefault('%(NupkgPathRelativeToPackageRoot)', '').ToLower())</RestoredNupkgPath>
</BundledDotnetTool>
</ItemGroup>
<Target Name="LayoutBundledTools" DependsOnTargets="SetupBundledComponents">
<ItemGroup>
<BundledToolLayoutProject Include="$(MSBuildThisFileDirectory)LayoutTool.csproj">
<Properties>
PackageToRestore=%(BundledDotnetTool.Identity);
PackageVersionToRestore=%(BundledDotnetTool.Version);
RestoreProjectStyle=DotnetToolReference;
TargetFramework=$(TargetFramework);
LayoutFolder=$(SdkOutputDirectory)DotnetTools/
</Properties>
</BundledToolLayoutProject>
</ItemGroup>
<MSBuild
BuildInParallel="False"
Projects="@(BundledToolLayoutProject)">
</MSBuild>
</Target>
</Project>

View file

@ -218,6 +218,7 @@
ExtractBundledComponents;
GenerateBundledVersions;
LayoutTemplates;
LayoutBundledTools;
RetargetTools"
AfterTargets="Build">

View file

@ -0,0 +1,27 @@
<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="LayoutTool">
<PropertyGroup>
<OutputType>Library</OutputType>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="$(PackageToRestore)" Version="$(PackageVersionToRestore)" />
</ItemGroup>
<Target Name="LayoutTool" DependsOnTargets="Restore">
<PropertyGroup>
<RestoredToolRoot>$([System.IO.Path]::GetFullPath('$(NuGetPackageRoot)/$(PackageToRestore)/$(PackageVersionToRestore)'))</RestoredToolRoot>
</PropertyGroup>
<ItemGroup>
<BundledToolFiles Include="$(RestoredToolRoot)\**\*.*" />
</ItemGroup>
<Exec Command="dir $(RestoredToolRoot)" />
<Copy SourceFiles="@(BundledToolFiles)"
DestinationFiles="@(BundledToolFiles->'$(LayoutFolder)$(PackageToRestore)\$(PackageVersionToRestore)\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target>
</Project>