Make the BuildTools project consumable either as a NuGet package or locally by importing a .proj
This commit is contained in:
parent
c5a104c56d
commit
7390af1681
|
|
@ -4,10 +4,11 @@
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- In real apps, the following items would come from the Microsoft.Blazor package -->
|
|
||||||
<Import Project="..\..\src\Microsoft.Blazor.BuildTools\BlazorBuild.targets" />
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\Microsoft.Blazor\Microsoft.Blazor.csproj" />
|
<ProjectReference Include="..\..\src\Microsoft.Blazor\Microsoft.Blazor.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!-- Local alternative to <PackageReference Include="Microsoft.Blazor.BuildTools" /> -->
|
||||||
|
<Import Project="..\..\src\Microsoft.Blazor.BuildTools\ReferenceFromSource.props" />
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- In real apps, the following items would come from the Microsoft.Blazor package -->
|
<!-- Local alternative to <PackageReference Include="Microsoft.Blazor.BuildTools" /> -->
|
||||||
<Import Project="..\..\src\Microsoft.Blazor.BuildTools\BlazorBuild.targets" />
|
<Import Project="..\..\src\Microsoft.Blazor.BuildTools\ReferenceFromSource.props" />
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -2,24 +2,16 @@
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
|
|
||||||
|
<!-- Local alternative to <RunArguments>blazor serve</RunArguments> -->
|
||||||
|
<RunArguments>run --project ..\..\src\Microsoft.Blazor.DevHost serve</RunArguments>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!--
|
|
||||||
The following is an alternative to referencing Microsoft.Blazor.DevHost as
|
|
||||||
a <DotNetCliToolReference>. This is so that Microsoft.Blazor.DevHost gets
|
|
||||||
compiled from source.
|
|
||||||
-->
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\src\Microsoft.Blazor.DevHost\Microsoft.Blazor.DevHost.csproj" ReferenceOutputAssembly="false" />
|
|
||||||
</ItemGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<RunArguments>run --project ..\..\src\Microsoft.Blazor.DevHost --no-build serve</RunArguments>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<!-- In real apps, the following items would come from the Microsoft.Blazor package -->
|
|
||||||
<Import Project="..\..\src\Microsoft.Blazor.BuildTools\BlazorBuild.targets" />
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\..\src\Microsoft.Blazor\Microsoft.Blazor.csproj" />
|
<ProjectReference Include="..\..\src\Microsoft.Blazor\Microsoft.Blazor.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<!-- Local alternative to <PackageReference Include="Microsoft.Blazor.BuildTools" /> -->
|
||||||
|
<Import Project="..\..\src\Microsoft.Blazor.BuildTools\ReferenceFromSource.props" />
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,12 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Microsoft.Blazor.BuildTools\Microsoft.Blazor.BuildTools.csproj" ReferenceOutputAssembly="false" />
|
|
||||||
<ProjectReference Include="..\Microsoft.Blazor.Common\Microsoft.Blazor.Common.csproj" />
|
<ProjectReference Include="..\Microsoft.Blazor.Common\Microsoft.Blazor.Common.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="..\Microsoft.Blazor.BuildTools\local.props" />
|
<Import Project="..\Microsoft.Blazor.BuildTools\ReferenceFromSource.props" />
|
||||||
|
|
||||||
<Target Name="EnsureNpmRestored" Condition="!Exists('node_modules')">
|
<Target Name="EnsureNpmRestored" Condition="!Exists('node_modules')">
|
||||||
<Exec Command="$(BlazorBuildTools) checknodejs -v 8.3.0" />
|
<Exec Command="$(BlazorBuildToolsExe) checknodejs -v 8.3.0" />
|
||||||
<Message Importance="high" Text="Restoring dependencies using 'npm'. This may take several minutes..." />
|
<Message Importance="high" Text="Restoring dependencies using 'npm'. This may take several minutes..." />
|
||||||
<Exec Command="npm install" />
|
<Exec Command="npm install" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
/tools/
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
<Project>
|
|
||||||
<Target Name="GenerateBlazorMetadataFile" BeforeTargets="GetCopyToOutputDirectoryItems">
|
|
||||||
<PropertyGroup>
|
|
||||||
<BlazorMetadataFileName>$(AssemblyName).blazor.config</BlazorMetadataFileName>
|
|
||||||
<BlazorMetadataFilePath>$(TargetDir)$(BlazorMetadataFileName)</BlazorMetadataFilePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
<WriteLinesToFile File="$(BlazorMetadataFilePath)" Lines="$(MSBuildProjectFullPath)" Overwrite="true" Encoding="Unicode"/>
|
|
||||||
<WriteLinesToFile File="$(BlazorMetadataFilePath)" Lines="$(OutDir)$(AssemblyName).dll" Overwrite="false" Encoding="Unicode"/>
|
|
||||||
<ItemGroup>
|
|
||||||
<ContentWithTargetPath Include="$(BlazorMetadataFilePath)" TargetPath="$(BlazorMetadataFileName)" CopyToOutputDirectory="PreserveNewest" />
|
|
||||||
</ItemGroup>
|
|
||||||
</Target>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
using Microsoft.Extensions.CommandLineUtils;
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
using System;
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace Microsoft.Blazor.BuildTools.Cli
|
namespace Microsoft.Blazor.BuildTools.Cli.Commands
|
||||||
{
|
{
|
||||||
class CheckNodeJsInstalled
|
class CheckNodeJsInstalled
|
||||||
{
|
{
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
using Microsoft.Blazor.BuildTools.Cli;
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using Microsoft.Blazor.BuildTools.Cli.Commands;
|
||||||
using Microsoft.Extensions.CommandLineUtils;
|
using Microsoft.Extensions.CommandLineUtils;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.Blazor.BuildTools
|
namespace Microsoft.Blazor.BuildTools
|
||||||
{
|
{
|
||||||
|
|
@ -3,8 +3,17 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
|
<OutDir>tools</OutDir>
|
||||||
|
<NoPackageAnalysis>true</NoPackageAnalysis>
|
||||||
|
<NuspecFile>Microsoft.Blazor.BuildTools.nuspec</NuspecFile>
|
||||||
|
<PackageVersion>0.0.1</PackageVersion>
|
||||||
|
<NuspecProperties>version=$(PackageVersion)</NuspecProperties>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="tools\**" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.CommandLineUtils" Version="1.1.1" />
|
<PackageReference Include="Microsoft.Extensions.CommandLineUtils" Version="1.1.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
|
||||||
|
<metadata>
|
||||||
|
<id>Microsoft.Blazor.BuildTools</id>
|
||||||
|
<version>$version$</version>
|
||||||
|
<authors>Microsoft</authors>
|
||||||
|
<description>Build tools for Blazor applications.</description>
|
||||||
|
</metadata>
|
||||||
|
<files>
|
||||||
|
<file src="_._" target="lib/netstandard1.0/" />
|
||||||
|
<file src="build\**" target="build" />
|
||||||
|
<file src="targets\**" target="targets" />
|
||||||
|
<file src="tools\**" target="tools" />
|
||||||
|
</files>
|
||||||
|
</package>
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
<Project>
|
||||||
|
<!--
|
||||||
|
Importing this file is equivalent to having:
|
||||||
|
<PackageDependency Include="Microsoft.Blazor.BuildTools" />
|
||||||
|
... except it's much more convenient when working in this repo, because it consumes the
|
||||||
|
BuildTools targets/exe directly without needing BuildTools to be packed into a .nupkg.
|
||||||
|
|
||||||
|
This is only intended for use by other projects in this repo.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<Import Project="$(MSBuildThisFileDirectory)targets\All.targets" />
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<!-- Ensures BuildTools itself is built before the consuming project, but without
|
||||||
|
adding a runtime dependency on the .dll (to be equivalent to a <PackageDependency>
|
||||||
|
given that the packed version of BuildTools wouldn't add a .dll reference) -->
|
||||||
|
<ProjectReference Include="$(MSBuildThisFileDirectory)Microsoft.Blazor.BuildTools.csproj" ReferenceOutputAssembly="false" PrivateAssets="all" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
<Project>
|
||||||
|
<Import Project="$(MSBuildThisFileDirectory)..\..\targets\All.targets" />
|
||||||
|
</Project>
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
<Project>
|
|
||||||
<PropertyGroup>
|
|
||||||
<!-- To avoid repeatedly running up-to-date checks, rely on the project already being built. -->
|
|
||||||
<!-- For this to work, consumers will need to have a project reference to this project. -->
|
|
||||||
<BlazorBuildTools>dotnet run --no-build --project $(MSBuildThisFileDirectory)</BlazorBuildTools>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Project>
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
<Project>
|
||||||
|
<PropertyGroup>
|
||||||
|
<BlazorBuildToolsExe>dotnet $(MSBuildThisFileDirectory)..\tools\Microsoft.Blazor.BuildTools.dll</BlazorBuildToolsExe>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<Target Name="GenerateBlazorMetadataFile" BeforeTargets="GetCopyToOutputDirectoryItems">
|
||||||
|
<PropertyGroup>
|
||||||
|
<BlazorMetadataFileName>$(AssemblyName).blazor.config</BlazorMetadataFileName>
|
||||||
|
<BlazorMetadataFilePath>$(TargetDir)$(BlazorMetadataFileName)</BlazorMetadataFilePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<WriteLinesToFile File="$(BlazorMetadataFilePath)" Lines="$(MSBuildProjectFullPath)" Overwrite="true" Encoding="Unicode"/>
|
||||||
|
<WriteLinesToFile File="$(BlazorMetadataFilePath)" Lines="$(OutDir)$(AssemblyName).dll" Overwrite="false" Encoding="Unicode"/>
|
||||||
|
<ItemGroup>
|
||||||
|
<ContentWithTargetPath Include="$(BlazorMetadataFilePath)" TargetPath="$(BlazorMetadataFileName)" CopyToOutputDirectory="PreserveNewest" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
</Project>
|
||||||
Loading…
Reference in New Issue