Merge branch 'master' of https://github.com/dotnet/cli into version-25305-19
This commit is contained in:
commit
49636ea608
142 changed files with 2001 additions and 1074 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -115,6 +115,7 @@ artifacts/
|
||||||
*.tmp
|
*.tmp
|
||||||
*.tmp_proj
|
*.tmp_proj
|
||||||
*.log
|
*.log
|
||||||
|
*.binlog
|
||||||
*.vspscc
|
*.vspscc
|
||||||
*.vssscc
|
*.vssscc
|
||||||
.builds
|
.builds
|
||||||
|
|
|
@ -5,13 +5,13 @@
|
||||||
<clear />
|
<clear />
|
||||||
<add key="templating" value="https://dotnet.myget.org/F/templating/api/v3/index.json" />
|
<add key="templating" value="https://dotnet.myget.org/F/templating/api/v3/index.json" />
|
||||||
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
|
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
|
||||||
<add key="aspnetcore-dev" value="https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json" />
|
<add key="aspnet-final" value="https://dotnet.myget.org/F/aspnetcore-2-0-0-preview1-no-timestamp/api/v3/index.json" />
|
||||||
|
<add key="aspnet-release" value="https://dotnet.myget.org/F/aspnetcore-release/api/v3/index.json" />
|
||||||
<add key="websdkfeed" value="https://dotnet.myget.org/F/dotnet-web/api/v3/index.json" />
|
<add key="websdkfeed" value="https://dotnet.myget.org/F/dotnet-web/api/v3/index.json" />
|
||||||
<add key="cli-deps" value="https://dotnet.myget.org/F/cli-deps/api/v3/index.json" />
|
<add key="cli-deps" value="https://dotnet.myget.org/F/cli-deps/api/v3/index.json" />
|
||||||
<add key="roslyn" value="https://dotnet.myget.org/f/roslyn/api/v3/index.json" />
|
<add key="roslyn" value="https://dotnet.myget.org/f/roslyn/api/v3/index.json" />
|
||||||
<add key="xunit" value="https://www.myget.org/F/xunit/api/v3/index.json" />
|
<add key="xunit" value="https://www.myget.org/F/xunit/api/v3/index.json" />
|
||||||
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
|
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||||
<add key="AspNetCurrent" value="https://dotnet.myget.org/F/aspnet-feb2017-patch/api/v3/index.json" />
|
|
||||||
<add key="vstest" value="https://dotnet.myget.org/F/vstest/api/v3/index.json" />
|
<add key="vstest" value="https://dotnet.myget.org/F/vstest/api/v3/index.json" />
|
||||||
</packageSources>
|
</packageSources>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|
|
@ -6,8 +6,6 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(PackageTargetFallback);portable-net45+win8;dnxcore50</PackageTargetFallback>
|
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(PackageTargetFallback);portable-net45+win8;dnxcore50</PackageTargetFallback>
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<AssemblyName>AppWithRedirectsAndConfig</AssemblyName>
|
<AssemblyName>AppWithRedirectsAndConfig</AssemblyName>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86</RuntimeIdentifiers>
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<AssemblyName>AppWithRedirectsNoConfig</AssemblyName>
|
<AssemblyName>AppWithRedirectsNoConfig</AssemblyName>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86</RuntimeIdentifiers>
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
<TargetFrameworks>netstandard1.6;net451</TargetFrameworks>
|
<TargetFrameworks>netstandard1.6;net451</TargetFrameworks>
|
||||||
<OutputType>Library</OutputType>
|
<OutputType>Library</OutputType>
|
||||||
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);portable-net45+win8;dnxcore50;netcoreapp2.0</PackageTargetFallback>
|
<PackageTargetFallback Condition=" '$(TargetFramework)' == 'netstandard1.6' ">$(PackageTargetFallback);portable-net45+win8;dnxcore50;netcoreapp2.0</PackageTargetFallback>
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -3,10 +3,9 @@
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp1.0</TargetFramework>
|
<TargetFramework>netcoreapp1.1</TargetFramework>
|
||||||
<AssemblyName>dotnet-throwingtool</AssemblyName>
|
<AssemblyName>dotnet-throwingtool</AssemblyName>
|
||||||
<PackageId>$(AssemblyName)</PackageId>
|
<PackageId>$(AssemblyName)</PackageId>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<GeneratedPackageId>random-name</GeneratedPackageId>
|
<GeneratedPackageId>random-name</GeneratedPackageId>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
<GeneratedPackageId>random-name</GeneratedPackageId>
|
<GeneratedPackageId>random-name</GeneratedPackageId>
|
||||||
<PackageId>$(GeneratedPackageId)</PackageId>
|
<PackageId>$(GeneratedPackageId)</PackageId>
|
||||||
<AssemblyName>dotnet-randompackage</AssemblyName>
|
<AssemblyName>dotnet-randompackage</AssemblyName>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -6,13 +6,6 @@
|
||||||
<AssemblyName>dotnet-tool-with-output-name</AssemblyName>
|
<AssemblyName>dotnet-tool-with-output-name</AssemblyName>
|
||||||
<PackageId>ToolWithOutputName</PackageId>
|
<PackageId>ToolWithOutputName</PackageId>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -1,22 +1,12 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VersionPrefix>1.0.0-rc</VersionPrefix>
|
<VersionPrefix>1.0.0-rc</VersionPrefix>
|
||||||
<TargetFramework>netcoreapp1.1</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<AssemblyName>dotnet-dependency-context-test</AssemblyName>
|
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
|
|
||||||
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
|
|
||||||
<DisableImplicitFrameworkReferences>false</DisableImplicitFrameworkReferences>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(DependencyModelVersion)" />
|
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(DependencyModelVersion)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
|
||||||
|
<!-- This test asset needs to import the general dir.props in order to get the SdkNugetVersion property.
|
||||||
|
This is why it also needs to explicitly set DisableImplicitFrameworkReferences to false. -->
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<VersionPrefix>1.0.0-rc</VersionPrefix>
|
<VersionPrefix>1.0.0-rc</VersionPrefix>
|
||||||
<TargetFramework>netcoreapp1.1</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<AssemblyName>dotnet-dependency-tool-invoker</AssemblyName>
|
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8;dnxcore50</PackageTargetFallback>
|
|
||||||
<VersionSuffix></VersionSuffix>
|
<VersionSuffix></VersionSuffix>
|
||||||
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
|
|
||||||
<DisableImplicitFrameworkReferences>false</DisableImplicitFrameworkReferences>
|
<DisableImplicitFrameworkReferences>false</DisableImplicitFrameworkReferences>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -20,12 +20,6 @@
|
||||||
<Compile Include="..\..\..\src\dotnet\CommandLine\*.cs;..\..\..\src\dotnet\CommonLocalizableStrings.cs;" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
|
<Compile Include="..\..\..\src\dotnet\CommandLine\*.cs;..\..\..\src\dotnet\CommonLocalizableStrings.cs;" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NuGet.Frameworks" Version="$(CLI_NuGet_Version)" />
|
<PackageReference Include="NuGet.Frameworks" Version="$(CLI_NuGet_Version)" />
|
||||||
<PackageReference Include="Microsoft.DotNet.Cli.Utils" Version="$(SdkNugetVersion)" />
|
<PackageReference Include="Microsoft.DotNet.Cli.Utils" Version="$(SdkNugetVersion)" />
|
||||||
|
|
|
@ -9,12 +9,6 @@
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86</RuntimeIdentifiers>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.1' ">
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.1' ">
|
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.1' ">
|
||||||
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
|
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
@ -6,12 +6,6 @@
|
||||||
<AssemblyName>dotnet-fallbackfoldertool</AssemblyName>
|
<AssemblyName>dotnet-fallbackfoldertool</AssemblyName>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<VersionSuffix></VersionSuffix>
|
<VersionSuffix></VersionSuffix>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
<!--Workaround for https://github.com/NuGet/Home/issues/4583-->
|
<!--Workaround for https://github.com/NuGet/Home/issues/4583-->
|
||||||
<VersionSuffix></VersionSuffix>
|
<VersionSuffix></VersionSuffix>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<AssemblyName>dotnet-hello</AssemblyName>
|
<AssemblyName>dotnet-hello</AssemblyName>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
<!--Workaround for https://github.com/NuGet/Home/issues/4583-->
|
<!--Workaround for https://github.com/NuGet/Home/issues/4583-->
|
||||||
<VersionSuffix></VersionSuffix>
|
<VersionSuffix></VersionSuffix>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<AssemblyName>dotnet-hello</AssemblyName>
|
<AssemblyName>dotnet-hello</AssemblyName>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.10-x64;osx.10.11-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7.2-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
||||||
|
|
|
@ -7,9 +7,4 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
|
<RuntimeFrameworkVersion>1.1.1</RuntimeFrameworkVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp1.1</TargetFramework>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
||||||
|
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
||||||
|
</BuiltProjectOutputGroupOutput>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\dotnet-portable\Program.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netcoreapp1.1</TargetFramework>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="..\dotnet-portable\Program.cs" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -2,6 +2,8 @@
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
namespace ConsoleApplication
|
namespace ConsoleApplication
|
||||||
{
|
{
|
||||||
|
@ -10,6 +12,20 @@ namespace ConsoleApplication
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Hello Portable World!");
|
Console.WriteLine("Hello Portable World!");
|
||||||
|
|
||||||
|
var depsFile = new FileInfo(GetDataFromAppDomain("FX_DEPS_FILE"));
|
||||||
|
string frameworkVersion = depsFile.Directory.Name;
|
||||||
|
|
||||||
|
Console.WriteLine($"I'm running on shared framework version {frameworkVersion}!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetDataFromAppDomain(string propertyName)
|
||||||
|
{
|
||||||
|
var appDomainType = typeof(object).GetTypeInfo().Assembly?.GetType("System.AppDomain");
|
||||||
|
var currentDomain = appDomainType?.GetProperty("CurrentDomain")?.GetValue(null);
|
||||||
|
var deps = appDomainType?.GetMethod("GetData")?.Invoke(currentDomain, new[] { propertyName });
|
||||||
|
|
||||||
|
return deps as string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,7 @@
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<AssemblyName>dotnet-portable</AssemblyName>
|
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<VersionSuffix></VersionSuffix>
|
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -5,14 +5,9 @@
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<VersionSuffix></VersionSuffix>
|
<VersionSuffix></VersionSuffix>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BuiltProjectOutputGroupOutput Include="$(ProjectRuntimeConfigFilePath)">
|
|
||||||
<FinalOutputPath>$(ProjectRuntimeConfigFilePath)</FinalOutputPath>
|
|
||||||
</BuiltProjectOutputGroupOutput>
|
|
||||||
|
|
||||||
<Content Include="prefercliruntime">
|
<Content Include="prefercliruntime">
|
||||||
<Pack>true</Pack>
|
<Pack>true</Pack>
|
||||||
<PackagePath>\prefercliruntime</PackagePath>
|
<PackagePath>\prefercliruntime</PackagePath>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -7,8 +7,6 @@
|
||||||
<AssemblyName>AppWithDirectDep</AssemblyName>
|
<AssemblyName>AppWithDirectDep</AssemblyName>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>net451;netcoreapp2.0</TargetFrameworks>
|
<TargetFrameworks>net451;netcoreapp2.0</TargetFrameworks>
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -8,8 +8,6 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||||
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
|
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50;portable-net45+win8</PackageTargetFallback>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>net451;netcoreapp2.0</TargetFrameworks>
|
<TargetFrameworks>net451;netcoreapp2.0</TargetFrameworks>
|
||||||
<RuntimeFrameworkVersion Condition=" '$(TargetFramework)' == 'netcoreapp2.0' ">$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFrameworks>net451;netcoreapp2.0</TargetFrameworks>
|
<TargetFrameworks>net451;netcoreapp2.0</TargetFrameworks>
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -5,8 +5,6 @@
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win7-x64;win7-x86;osx.10.12-x64;ubuntu.14.04-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;rhel.7-x64;debian.8-x64;fedora.24-x64;opensuse.42.1-x64</RuntimeIdentifiers>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp2.0</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>Exe</OutputType>
|
||||||
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NuGet.Configuration" Version="4.3.0-beta1-2418" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,16 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using NuGet.Configuration;
|
||||||
|
|
||||||
|
class Program
|
||||||
|
{
|
||||||
|
public static void Main(string[] args)
|
||||||
|
{
|
||||||
|
var settingValue = new SettingValue("key", "value", false);
|
||||||
|
|
||||||
|
Console.WriteLine(settingValue.Key);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
<StoreArtifacts>
|
||||||
|
<Package Id="NuGet.Configuration" Version ="4.3.0-beta1-2418"/>
|
||||||
|
</StoreArtifacts>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NuGet.Configuration" Version ="4.3.0-beta1-2418"/>
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<!-- Issue: https://github.com/dotnet/sdk/issues/1150 -->
|
<!-- Issue: https://github.com/dotnet/sdk/issues/1150 -->
|
||||||
<DisableImplicitPackageTargetFallback>true</DisableImplicitPackageTargetFallback>
|
<DisableImplicitPackageTargetFallback>true</DisableImplicitPackageTargetFallback>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
<DotnetCliToolTargetFramework>netcoreapp1.1</DotnetCliToolTargetFramework>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
|
@ -2,7 +2,6 @@
|
||||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
|
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), testAsset.props))\testAsset.props" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
|
<TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -10,10 +9,6 @@
|
||||||
<DefineConstants>DESKTOP;$(DefineConstants)</DefineConstants>
|
<DefineConstants>DESKTOP;$(DefineConstants)</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(TargetFramework)' == 'netcoreapp2.0'">
|
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="MSTest.TestFramework" Version="1.0.6-preview" />
|
<PackageReference Include="MSTest.TestFramework" Version="1.0.6-preview" />
|
||||||
<PackageReference Include="MSTest.TestAdapter" Version="1.1.5-preview" />
|
<PackageReference Include="MSTest.TestAdapter" Version="1.1.5-preview" />
|
|
@ -4,7 +4,6 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||||
<RuntimeFrameworkVersion>$(CLI_SharedFrameworkVersion)</RuntimeFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
|
@ -20,7 +20,7 @@
|
||||||
<BackwardsCompatibility110SharedFrameworkArchiveBlobRootUrl>$(BackwardsCompatibility110CoreSetupBlobRootUrlWithChannel)/Binaries/$(BackwardsCompatibility110SharedFrameworkVersion)</BackwardsCompatibility110SharedFrameworkArchiveBlobRootUrl>
|
<BackwardsCompatibility110SharedFrameworkArchiveBlobRootUrl>$(BackwardsCompatibility110CoreSetupBlobRootUrlWithChannel)/Binaries/$(BackwardsCompatibility110SharedFrameworkVersion)</BackwardsCompatibility110SharedFrameworkArchiveBlobRootUrl>
|
||||||
<BackwardsCompatibility110CoreSetupInstallerBlobRootUrl>$(BackwardsCompatibility110CoreSetupBlobRootUrlWithChannel)/Installers</BackwardsCompatibility110CoreSetupInstallerBlobRootUrl>
|
<BackwardsCompatibility110CoreSetupInstallerBlobRootUrl>$(BackwardsCompatibility110CoreSetupBlobRootUrlWithChannel)/Installers</BackwardsCompatibility110CoreSetupInstallerBlobRootUrl>
|
||||||
<BackwardsCompatibility110CoreSetupDownloadDirectory>$(IntermediateDirectory)/coreSetupDownload/$(BackwardsCompatibility110SharedFrameworkVersion)</BackwardsCompatibility110CoreSetupDownloadDirectory>
|
<BackwardsCompatibility110CoreSetupDownloadDirectory>$(IntermediateDirectory)/coreSetupDownload/$(BackwardsCompatibility110SharedFrameworkVersion)</BackwardsCompatibility110CoreSetupDownloadDirectory>
|
||||||
<BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive>$(BackwardsCompatibility110CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive</BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive>
|
<BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive>$(BackwardsCompatibility110CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension)</BackwardsCompatibility110CombinedSharedHostAndFrameworkArchive>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(IncludeSharedFrameworksForBackwardsCompatibilityTests)' == 'true' ">
|
<ItemGroup Condition=" '$(IncludeSharedFrameworksForBackwardsCompatibilityTests)' == 'true' ">
|
||||||
|
|
|
@ -25,7 +25,22 @@
|
||||||
<SharedFrameworkArchiveBlobRootUrl>$(CoreSetupBlobRootUrlWithChannel)/Binaries/$(SharedFrameworkVersion)</SharedFrameworkArchiveBlobRootUrl>
|
<SharedFrameworkArchiveBlobRootUrl>$(CoreSetupBlobRootUrlWithChannel)/Binaries/$(SharedFrameworkVersion)</SharedFrameworkArchiveBlobRootUrl>
|
||||||
<CoreSetupInstallerBlobRootUrl>$(CoreSetupBlobRootUrlWithChannel)/Installers</CoreSetupInstallerBlobRootUrl>
|
<CoreSetupInstallerBlobRootUrl>$(CoreSetupBlobRootUrlWithChannel)/Installers</CoreSetupInstallerBlobRootUrl>
|
||||||
<CoreSetupDownloadDirectory>$(IntermediateDirectory)/coreSetupDownload/$(SharedFrameworkVersion)</CoreSetupDownloadDirectory>
|
<CoreSetupDownloadDirectory>$(IntermediateDirectory)/coreSetupDownload/$(SharedFrameworkVersion)</CoreSetupDownloadDirectory>
|
||||||
<CombinedSharedHostAndFrameworkArchive>$(CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive</CombinedSharedHostAndFrameworkArchive>
|
<CombinedSharedHostAndFrameworkArchive>$(CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension)</CombinedSharedHostAndFrameworkArchive>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<AspNetCoreRuntimeInstallerBlobRootUrl>$(CoreSetupBlobRootUrl)aspnetcore/store/$(AspNetCoreRuntimeVersion)</AspNetCoreRuntimeInstallerBlobRootUrl>
|
||||||
|
|
||||||
|
<!-- Examples: Build.RS.linux.zip Build.RS.winx86.zip AspNetCorePackageStoreLibx64.wixlib -->
|
||||||
|
<AspNetCoreRuntimeInstallerArchiveFileNameOSToken Condition=" '$(OSName)' == 'win' ">$(OSName)$(Architecture)</AspNetCoreRuntimeInstallerArchiveFileNameOSToken>
|
||||||
|
<AspNetCoreRuntimeInstallerArchiveFileNameOSToken Condition=" '$(OSName)' == 'osx' ">$(OSName)</AspNetCoreRuntimeInstallerArchiveFileNameOSToken>
|
||||||
|
<AspNetCoreRuntimeInstallerArchiveFileNameOSToken Condition=" '$(AspNetCoreRuntimeInstallerArchiveFileNameOSToken)' == '' ">linux</AspNetCoreRuntimeInstallerArchiveFileNameOSToken>
|
||||||
|
|
||||||
|
<AspNetCoreRuntimeInstallerArchiveFileName>Build.RS.$(AspNetCoreRuntimeInstallerArchiveFileNameOSToken)$(ArchiveExtension)</AspNetCoreRuntimeInstallerArchiveFileName>
|
||||||
|
<AspNetCoreRuntimeInstallerArchiveFile>$(PackagesDirectory)/$(AspNetCoreRuntimeInstallerArchiveFileName)</AspNetCoreRuntimeInstallerArchiveFile>
|
||||||
|
|
||||||
|
<AspNetCoreRuntimeInstallerWixLibFileName Condition=" '$(OSName)' == 'win' ">AspNetCorePackageStoreLib$(Architecture).wixlib</AspNetCoreRuntimeInstallerWixLibFileName>
|
||||||
|
<AspNetCoreRuntimeInstallerWixLibFile Condition=" '$(AspNetCoreRuntimeInstallerWixLibFileName)' != '' ">$(PackagesDirectory)/$(AspNetCoreRuntimeInstallerWixLibFileName)</AspNetCoreRuntimeInstallerWixLibFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -47,14 +62,29 @@
|
||||||
Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedSharedHostInstallerFile)') And '$(InstallerExtension)' != ''">
|
Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedSharedHostInstallerFile)') And '$(InstallerExtension)' != ''">
|
||||||
<Url>$(CoreSetupInstallerBlobRootUrl)/$(SharedHostVersion)/$(DownloadedSharedHostInstallerFileName)</Url>
|
<Url>$(CoreSetupInstallerBlobRootUrl)/$(SharedHostVersion)/$(DownloadedSharedHostInstallerFileName)</Url>
|
||||||
<DownloadFileName>$(DownloadedSharedHostInstallerFile)</DownloadFileName>
|
<DownloadFileName>$(DownloadedSharedHostInstallerFile)</DownloadFileName>
|
||||||
<ExtractDestintation></ExtractDestintation>
|
<ExtractDestination></ExtractDestination>
|
||||||
</_DownloadAndExtractItem>
|
</_DownloadAndExtractItem>
|
||||||
|
|
||||||
<_DownloadAndExtractItem Include="DownloadedHostFxrInstallerFile"
|
<_DownloadAndExtractItem Include="DownloadedHostFxrInstallerFile"
|
||||||
Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedHostFxrInstallerFile)') And '$(InstallerExtension)' != ''">
|
Condition="'$(SkipBuildingInstallers)' != 'true' And !Exists('$(DownloadedHostFxrInstallerFile)') And '$(InstallerExtension)' != ''">
|
||||||
<Url>$(CoreSetupInstallerBlobRootUrl)/$(HostFxrVersion)/$(DownloadedHostFxrInstallerFileName)</Url>
|
<Url>$(CoreSetupInstallerBlobRootUrl)/$(HostFxrVersion)/$(DownloadedHostFxrInstallerFileName)</Url>
|
||||||
<DownloadFileName>$(DownloadedHostFxrInstallerFile)</DownloadFileName>
|
<DownloadFileName>$(DownloadedHostFxrInstallerFile)</DownloadFileName>
|
||||||
<ExtractDestintation></ExtractDestintation>
|
<ExtractDestination></ExtractDestination>
|
||||||
</_DownloadAndExtractItem>
|
</_DownloadAndExtractItem>
|
||||||
|
|
||||||
|
<_DownloadAndExtractItem Include="AspNetCoreRuntimeInstallerWixLibFile"
|
||||||
|
Condition=" '$(AspNetCoreRuntimeInstallerWixLibFile)' != '' And !Exists('$(AspNetCoreRuntimeInstallerWixLibFile)')">
|
||||||
|
<Url>$(AspNetCoreRuntimeInstallerBlobRootUrl)/$(AspNetCoreRuntimeInstallerWixLibFileName)</Url>
|
||||||
|
<DownloadFileName>$(AspNetCoreRuntimeInstallerWixLibFile)</DownloadFileName>
|
||||||
|
<ExtractDestination></ExtractDestination>
|
||||||
|
</_DownloadAndExtractItem>
|
||||||
|
|
||||||
|
<_DownloadAndExtractItem Include="AspNetCoreRuntimeInstallerArchiveFile"
|
||||||
|
Condition="!Exists('$(AspNetCoreRuntimeInstallerArchiveFile)')">
|
||||||
|
<Url>$(AspNetCoreRuntimeInstallerBlobRootUrl)/$(AspNetCoreRuntimeInstallerArchiveFileName)</Url>
|
||||||
|
<DownloadFileName>$(AspNetCoreRuntimeInstallerArchiveFile)</DownloadFileName>
|
||||||
|
<ExtractDestination>$(AspNetRuntimePackageStorePublishDirectory)</ExtractDestination>
|
||||||
|
</_DownloadAndExtractItem>
|
||||||
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -12,5 +12,14 @@
|
||||||
<!-- Publish DotNet -->
|
<!-- Publish DotNet -->
|
||||||
<MSBuild Projects="$(SrcDirectory)/redist/redist.csproj"
|
<MSBuild Projects="$(SrcDirectory)/redist/redist.csproj"
|
||||||
Targets="Publish" />
|
Targets="Publish" />
|
||||||
|
|
||||||
|
<!-- Build MSBuildSdkResolver for all target frameworks (so we can build and test it x-plat) -->
|
||||||
|
<MSBuild Projects="$(SrcDirectory)/Microsoft.DotNet.MSBuildSdkResolver/Microsoft.DotNet.MSBuildSdkResolver.csproj" />
|
||||||
|
|
||||||
|
<!-- Publish MSBuildSdkResolver for net46 (to prepare it for the VS insertion nupkg packaging) -->
|
||||||
|
<MSBuild Projects="$(SrcDirectory)/Microsoft.DotNet.MSBuildSdkResolver/Microsoft.DotNet.MSBuildSdkResolver.csproj"
|
||||||
|
Condition="'$(OS)' == 'Windows_NT'"
|
||||||
|
Properties="TargetFramework=net46"
|
||||||
|
Targets="Publish" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -2,22 +2,26 @@
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<CLI_SharedFrameworkVersion>2.0.0-preview2-25305-19</CLI_SharedFrameworkVersion>
|
<CLI_SharedFrameworkVersion>2.0.0-preview2-25305-19</CLI_SharedFrameworkVersion>
|
||||||
<CLI_MSBuild_Version>15.2.0-preview-000093-02</CLI_MSBuild_Version>
|
<CLI_MSBuild_Version>15.3.0-preview-000117-01</CLI_MSBuild_Version>
|
||||||
<CLI_Roslyn_Version>2.0.0-rc4-61325-08</CLI_Roslyn_Version>
|
<CLI_Roslyn_Version>2.0.0-rc4-61325-08</CLI_Roslyn_Version>
|
||||||
<CLI_NETSDK_Version>2.0.0-preview2-20170425-7</CLI_NETSDK_Version>
|
<CLI_NETSDK_Version>2.0.0-preview2-20170506-1</CLI_NETSDK_Version>
|
||||||
<CLI_NuGet_Version>4.3.0-preview1-2500</CLI_NuGet_Version>
|
<CLI_NuGet_Version>4.3.0-preview1-2500</CLI_NuGet_Version>
|
||||||
<CLI_WEBSDK_Version>1.0.0-rel-20170413-451</CLI_WEBSDK_Version>
|
<CLI_WEBSDK_Version>1.0.0-rel-20170501-473</CLI_WEBSDK_Version>
|
||||||
<CLI_TestPlatform_Version>15.1.0-preview-20170414-04</CLI_TestPlatform_Version>
|
<CLI_TestPlatform_Version>15.3.0-preview-20170502-03</CLI_TestPlatform_Version>
|
||||||
<SharedFrameworkVersion>$(CLI_SharedFrameworkVersion)</SharedFrameworkVersion>
|
<SharedFrameworkVersion>$(CLI_SharedFrameworkVersion)</SharedFrameworkVersion>
|
||||||
<SharedHostVersion>$(CLI_SharedFrameworkVersion)</SharedHostVersion>
|
<SharedHostVersion>$(CLI_SharedFrameworkVersion)</SharedHostVersion>
|
||||||
<HostFxrVersion>$(CLI_SharedFrameworkVersion)</HostFxrVersion>
|
<HostFxrVersion>$(CLI_SharedFrameworkVersion)</HostFxrVersion>
|
||||||
<TemplateEngineVersion>1.0.0-beta2-20170425-201</TemplateEngineVersion>
|
<TemplateEngineVersion>1.0.0-beta2-20170503-217</TemplateEngineVersion>
|
||||||
<TemplateEngineTemplateVersion>1.0.0-beta2-20170425-203</TemplateEngineTemplateVersion>
|
<TemplateEngineTemplateVersion>1.0.0-beta2-20170504-221</TemplateEngineTemplateVersion>
|
||||||
<TemplateEngineTemplate2_0Version>1.0.0-beta2-20170425-203</TemplateEngineTemplate2_0Version>
|
<TemplateEngineTemplate2_0Version>1.0.0-beta2-20170504-221</TemplateEngineTemplate2_0Version>
|
||||||
<PlatformAbstractionsVersion>2.0.0-preview2-002093</PlatformAbstractionsVersion>
|
<PlatformAbstractionsVersion>2.0.0-preview2-002093</PlatformAbstractionsVersion>
|
||||||
<DependencyModelVersion>2.0.0-preview2-002093</DependencyModelVersion>
|
<DependencyModelVersion>2.0.0-preview2-002093</DependencyModelVersion>
|
||||||
<CliCommandLineParserVersion>0.1.0-alpha-142</CliCommandLineParserVersion>
|
<CliCommandLineParserVersion>0.1.0-alpha-142</CliCommandLineParserVersion>
|
||||||
<CliMigrateVersion>1.2.1-alpha-002130</CliMigrateVersion>
|
<CliMigrateVersion>1.2.1-alpha-002130</CliMigrateVersion>
|
||||||
|
<AspNetCoreRuntimeVersion>2.0.0-preview1-65</AspNetCoreRuntimeVersion>
|
||||||
|
|
||||||
|
<!-- This should either be timestamped or notimestamp as appropriate -->
|
||||||
|
<AspNetCoreRuntimePackageFlavor>notimestamp</AspNetCoreRuntimePackageFlavor>
|
||||||
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
|
|
||||||
<Target Name="GenerateBundledVersionsProps">
|
<Target Name="GenerateBundledVersionsProps">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<BundledVersionsPropsFolder>15.0/Imports/Microsoft.Common.props/ImportBefore</BundledVersionsPropsFolder>
|
|
||||||
<BundledVersionsPropsFileName>Microsoft.NETCoreSdk.BundledVersions.props</BundledVersionsPropsFileName>
|
<BundledVersionsPropsFileName>Microsoft.NETCoreSdk.BundledVersions.props</BundledVersionsPropsFileName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -59,12 +58,9 @@ Copyright (c) .NET Foundation. All rights reserved.
|
||||||
</BundledVersionsPropsContent>
|
</BundledVersionsPropsContent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<MakeDir Directories="$(GeneratedMSBuildExtensionsDirectory)/$(BundledVersionsPropsFolder)" />
|
<MakeDir Directories="$(GeneratedMSBuildExtensionsDirectory)" />
|
||||||
<WriteLinesToFile File="$(GeneratedMSBuildExtensionsDirectory)/$(BundledVersionsPropsFolder)/$(BundledVersionsPropsFileName)"
|
<WriteLinesToFile File="$(GeneratedMSBuildExtensionsDirectory)/$(BundledVersionsPropsFileName)"
|
||||||
Lines="$(BundledVersionsPropsContent)"
|
Lines="$(BundledVersionsPropsContent)"
|
||||||
Overwrite="true" />
|
Overwrite="true" />
|
||||||
<Copy
|
|
||||||
SourceFiles="$(GeneratedMSBuildExtensionsDirectory)/$(BundledVersionsPropsFolder)/$(BundledVersionsPropsFileName)"
|
|
||||||
DestinationFiles="$(SdkOutputDirectory)/$(BundledVersionsPropsFileName)" />
|
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -10,9 +10,12 @@
|
||||||
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory>
|
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory>
|
||||||
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
|
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
|
||||||
<SharedFrameworkPublishDirectory>$(IntermediateDirectory)/sharedFrameworkPublish</SharedFrameworkPublishDirectory>
|
<SharedFrameworkPublishDirectory>$(IntermediateDirectory)/sharedFrameworkPublish</SharedFrameworkPublishDirectory>
|
||||||
|
<!-- The 'AspNetRuntimePackageStorePublishDirectory' needs to be very short due to path length constraints on Win8.1 -->
|
||||||
|
<AspNetRuntimePackageStorePublishDirectory>$(BaseOutputDirectory)/AspRT</AspNetRuntimePackageStorePublishDirectory>
|
||||||
<BackwardsCompatibleSharedFrameworksPublishDirectory>$(IntermediateDirectory)/backwardsCompatibleSharedFrameworksPublish</BackwardsCompatibleSharedFrameworksPublishDirectory>
|
<BackwardsCompatibleSharedFrameworksPublishDirectory>$(IntermediateDirectory)/backwardsCompatibleSharedFrameworksPublish</BackwardsCompatibleSharedFrameworksPublishDirectory>
|
||||||
<TestOutputDir>$(RepoRoot)/artifacts/testpackages/</TestOutputDir>
|
<TestOutputDir>$(RepoRoot)/artifacts/testpackages/</TestOutputDir>
|
||||||
<DotnetInOutputDirectory>$(OutputDirectory)/dotnet$(ExeExtension)</DotnetInOutputDirectory>
|
<DotnetInOutputDirectory>$(OutputDirectory)/dotnet$(ExeExtension)</DotnetInOutputDirectory>
|
||||||
<GeneratedMSBuildExtensionsDirectory>$(IntermediateDirectory)/GeneratedMSBuildExtensions</GeneratedMSBuildExtensionsDirectory>
|
<GeneratedMSBuildExtensionsDirectory>$(IntermediateDirectory)/GeneratedMSBuildExtensions</GeneratedMSBuildExtensionsDirectory>
|
||||||
|
<SdkResolverOutputDirectory>$(IntermediateDirectory)/MSBuildSdkResolver</SdkResolverOutputDirectory>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -36,12 +36,12 @@
|
||||||
Uri="%(_DownloadAndExtractItem.Url)"
|
Uri="%(_DownloadAndExtractItem.Url)"
|
||||||
DestinationPath="%(_DownloadAndExtractItem.DownloadFileName)" />
|
DestinationPath="%(_DownloadAndExtractItem.DownloadFileName)" />
|
||||||
|
|
||||||
<ZipFileExtractToDirectory Condition=" '%(_DownloadAndExtractItem.ExtractDestination)' != '' AND '$(OSName)' == 'win' "
|
<ZipFileExtractToDirectory Condition=" '%(_DownloadAndExtractItem.ExtractDestination)' != '' AND $([System.String]::new('%(_DownloadAndExtractItem.DownloadFileName)').EndsWith('.zip')) "
|
||||||
SourceArchive="%(_DownloadAndExtractItem.DownloadFileName)"
|
SourceArchive="%(_DownloadAndExtractItem.DownloadFileName)"
|
||||||
DestinationDirectory="%(_DownloadAndExtractItem.ExtractDestination)"
|
DestinationDirectory="%(_DownloadAndExtractItem.ExtractDestination)"
|
||||||
OverwriteDestination="$(OverwriteExtractionDestination)" />
|
OverwriteDestination="$(OverwriteExtractionDestination)" />
|
||||||
|
|
||||||
<TarGzFileExtractToDirectory Condition=" '%(_DownloadAndExtractItem.ExtractDestination)' != '' AND '$(OSName)' != 'win' "
|
<TarGzFileExtractToDirectory Condition=" '%(_DownloadAndExtractItem.ExtractDestination)' != '' AND $([System.String]::new('%(_DownloadAndExtractItem.DownloadFileName)').EndsWith('.tar.gz')) "
|
||||||
SourceArchive="%(_DownloadAndExtractItem.DownloadFileName)"
|
SourceArchive="%(_DownloadAndExtractItem.DownloadFileName)"
|
||||||
DestinationDirectory="%(_DownloadAndExtractItem.ExtractDestination)"
|
DestinationDirectory="%(_DownloadAndExtractItem.ExtractDestination)"
|
||||||
OverwriteDestination="$(OverwriteExtractionDestination)" />
|
OverwriteDestination="$(OverwriteExtractionDestination)" />
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
<OutputDirectory Condition="'$(OutputDirectory)' == ''">$(BaseOutputDirectory)/stage2</OutputDirectory>
|
<OutputDirectory Condition="'$(OutputDirectory)' == ''">$(BaseOutputDirectory)/stage2</OutputDirectory>
|
||||||
<CompilationDirectory Condition="'$(CompilationDirectory)' == ''">$(BaseOutputDirectory)/stage2compilation</CompilationDirectory>
|
<CompilationDirectory Condition="'$(CompilationDirectory)' == ''">$(BaseOutputDirectory)/stage2compilation</CompilationDirectory>
|
||||||
<PackagesDirectory Condition="'$(PackagesDirectory)' == ''">$(BaseOutputDirectory)/packages</PackagesDirectory>
|
<PackagesDirectory Condition="'$(PackagesDirectory)' == ''">$(BaseOutputDirectory)/packages</PackagesDirectory>
|
||||||
|
<SdkResolverOutputDirectory>$(BaseOutputDirectory)/intermediate/MSBuildSdkResolver</SdkResolverOutputDirectory>
|
||||||
|
|
||||||
<!-- The OutDir and IntermediateOutputPath properties are required by MicroBuild. MicroBuild only
|
<!-- The OutDir and IntermediateOutputPath properties are required by MicroBuild. MicroBuild only
|
||||||
signs files that are under these paths. -->
|
signs files that are under these paths. -->
|
||||||
|
@ -71,6 +72,19 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="SignSdkResolverContents" DependsOnTargets="GetSignSdkResolverContentsFiles;SignFiles" />
|
||||||
|
|
||||||
|
<Target Name="GetSignSdkResolverContentsFiles">
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutDir>$(SdkResolverOutputDirectory)</OutDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<FilesToSign Include="$(SdkResolverOutputDirectory)/Microsoft.DotNet.MSBuildSdkResolver.dll">
|
||||||
|
<Authenticode>$(InternalCertificateId)</Authenticode>
|
||||||
|
</FilesToSign>
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
<Target Name="SignMsiAndCab" DependsOnTargets="GetSignMsiAndCabFiles;SignFiles" />
|
<Target Name="SignMsiAndCab" DependsOnTargets="GetSignMsiAndCabFiles;SignFiles" />
|
||||||
|
|
||||||
<Target Name="GetSignMsiAndCabFiles">
|
<Target Name="GetSignMsiAndCabFiles">
|
||||||
|
|
|
@ -2,127 +2,20 @@
|
||||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<UploadNuGetPackagesArchiveToAzure>false</UploadNuGetPackagesArchiveToAzure>
|
|
||||||
<NuGetConfigContent>
|
|
||||||
<configuration>
|
|
||||||
<packageSources>
|
|
||||||
<add key="configurable.source" value="%CLI_LZMA_PACKAGE_SOURCE%" />
|
|
||||||
</packageSources>
|
|
||||||
</configuration>
|
|
||||||
</NuGetConfigContent>
|
|
||||||
|
|
||||||
<NuGetPackagesArchiveProject>$(IntermediateDirectory)/NuGetPackagesArchiveProject</NuGetPackagesArchiveProject>
|
|
||||||
<NuGetPackagesArchiveFolder>$(IntermediateDirectory)/NuGetPackagesArchiveFolder</NuGetPackagesArchiveFolder>
|
|
||||||
<LZMANuGetConfigFilePath Condition=" '$(CLI_LZMA_PACKAGE_SOURCE)' != '' ">$(NuGetPackagesArchiveProject)/Nuget.config</LZMANuGetConfigFilePath>
|
|
||||||
<LZMANuGetConfigFilePath Condition=" '$(LZMANuGetConfigFilePath)' == '' ">$(RepoRoot)/NuGet.Config</LZMANuGetConfigFilePath>
|
|
||||||
<ToolsOutputDirectory>$(BaseOutputDirectory)/tools</ToolsOutputDirectory>
|
|
||||||
<ArchiverDll>$(ToolsOutputDirectory)/Archiver.dll</ArchiverDll>
|
|
||||||
<FinalArchive>$(SdkOutputDirectory)/nuGetPackagesArchive.lzma</FinalArchive>
|
<FinalArchive>$(SdkOutputDirectory)/nuGetPackagesArchive.lzma</FinalArchive>
|
||||||
|
<NugetPackagesArchiveName>nuGetPackagesArchive.$(AspNetCoreRuntimePackageFlavor).lzma</NugetPackagesArchiveName>
|
||||||
|
<IntermediateArchive>$(IntermediateDirectory)/$(NugetPackagesArchiveName)</IntermediateArchive>
|
||||||
|
<NugetPackagesArchiveBlobUrl>$(AspNetCoreRuntimeInstallerBlobRootUrl)/$(NugetPackagesArchiveName)</NugetPackagesArchiveBlobUrl>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Target Name="GetNuGetPackagesArchive"
|
<Target Name="GetNuGetPackagesArchive"
|
||||||
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs;
|
|
||||||
DownloadNuGetPackagesArchive;
|
|
||||||
GenerateNuGetPackagesArchive;
|
|
||||||
UploadNuGetPackagesArchiveToAzure"
|
|
||||||
Inputs="$(IntermediateArchive)"
|
Inputs="$(IntermediateArchive)"
|
||||||
Outputs="$(FinalArchive)"
|
Outputs="$(FinalArchive)"
|
||||||
Condition=" '$(IncludeNuGetPackageArchive)' == 'true' ">
|
Condition=" '$(IncludeNuGetPackageArchive)' == 'true' ">
|
||||||
<Copy SourceFiles="$(IntermediateArchive)" DestinationFiles="$(FinalArchive)" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="UploadNuGetPackagesArchiveToAzure"
|
|
||||||
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs;
|
|
||||||
GenerateNuGetPackagesArchive"
|
|
||||||
Condition=" '$(UploadNuGetPackagesArchiveToAzure)' == 'true' And '$(PUBLISH_LZMA_TO_AZURE_BLOB)' != '' ">
|
|
||||||
<ItemGroup>
|
|
||||||
<NuGetPackagesArchiveToUpload Include="$(IntermediateArchive)" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<NuGetPackagesArchiveToUpload>
|
|
||||||
<RelativeBlobPath>$(NugetPackagesArchiveRelativeBlobUrl)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
|
|
||||||
</NuGetPackagesArchiveToUpload>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<UploadToAzure
|
|
||||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
|
||||||
AccountName="$(ArtifactCloudDropAccountName)"
|
|
||||||
ContainerName="$(ArtifactContainerName)"
|
|
||||||
Items="@(NuGetPackagesArchiveToUpload)"
|
|
||||||
Overwrite="false"
|
|
||||||
ContinueOnError="WarnAndContinue" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="DownloadNuGetPackagesArchive"
|
|
||||||
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs"
|
|
||||||
Inputs="$(IntermediateArchive)"
|
|
||||||
Outputs="$(IntermediateArchive)">
|
|
||||||
<DownloadFile Uri="$(NugetPackagesArchiveBlobUrl)"
|
<DownloadFile Uri="$(NugetPackagesArchiveBlobUrl)"
|
||||||
DestinationPath="$(IntermediateArchive)"
|
DestinationPath="$(IntermediateArchive)"
|
||||||
ContinueOnError="WarnAndContinue" />
|
ContinueOnError="WarnAndContinue" />
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="GenerateNuGetPackagesArchive"
|
<Copy SourceFiles="$(IntermediateArchive)" DestinationFiles="$(FinalArchive)" />
|
||||||
DependsOnTargets="SetupNuGetPackagesArchiveInputsOutputs"
|
|
||||||
Inputs="$(IntermediateArchive)"
|
|
||||||
Outputs="$(IntermediateArchive)">
|
|
||||||
|
|
||||||
<!-- I need to use the CreateProperty task in conjunction with the ValueSetByTask TaskParameter -->
|
|
||||||
<!-- to ensure that the property only gets set when the parent target is run. -->
|
|
||||||
<CreateProperty Value="true">
|
|
||||||
<Output TaskParameter="ValueSetByTask" PropertyName="UploadNuGetPackagesArchiveToAzure" />
|
|
||||||
</CreateProperty>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<FilesToClean Include="$(NuGetPackagesArchiveProject)/**/*" />
|
|
||||||
<FilesToClean Include="$(NuGetPackagesArchiveFolder)/**/*" />
|
|
||||||
|
|
||||||
<NuGetPackagesArchiveDirectory Include="$(NuGetPackagesArchiveProject)/MvcIndividual" />
|
|
||||||
<NuGetPackagesArchiveDirectory Include="$(NuGetPackagesArchiveFolder)" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<Delete Files="@(FilesToClean)" />
|
|
||||||
<RemoveDir Directories="@(NuGetPackagesArchiveDirectory)" />
|
|
||||||
<MakeDir Directories="@(NuGetPackagesArchiveDirectory)"/>
|
|
||||||
|
|
||||||
<WriteLinesToFile Condition=" '$(CLI_LZMA_PACKAGE_SOURCE)' != '' "
|
|
||||||
File="$(LZMANuGetConfigFilePath)"
|
|
||||||
Lines="$(NuGetConfigContent)" />
|
|
||||||
|
|
||||||
<DotNetNew ToolPath="$(OutputDirectory)"
|
|
||||||
TemplateType="mvc"
|
|
||||||
TemplateArgs="-au Individual --debug:ephemeral-hive --no-restore"
|
|
||||||
WorkingDirectory="$(NuGetPackagesArchiveProject)/MvcIndividual" />
|
|
||||||
|
|
||||||
<DotNetRestore ToolPath="$(OutputDirectory)"
|
|
||||||
Packages="$(NuGetPackagesArchiveFolder)"
|
|
||||||
ConfigFile="$(LZMANuGetConfigFilePath)"
|
|
||||||
SkipInvalidConfigurations="True"
|
|
||||||
WorkingDirectory="$(NuGetPackagesArchiveProject)/MvcIndividual" />
|
|
||||||
|
|
||||||
|
|
||||||
<Delete Files="$(IntermediateArchive);$(IntermediateArchive).zip;$(NuGetPackagesArchiveFolder)/**/*.nupkg" />
|
|
||||||
|
|
||||||
<Message Text="Publishing Archiver" />
|
|
||||||
|
|
||||||
<DotNetPublish ToolPath="$(OutputDirectory)"
|
|
||||||
WorkingDirectory="$(RepoRoot)/tools/Archiver"
|
|
||||||
Output="$(ToolsOutputDirectory)"
|
|
||||||
Configuration="$(Configuration)" />
|
|
||||||
|
|
||||||
<Exec Command="$(DotnetInOutputDirectory) $(ArchiverDll) -a $(IntermediateArchive) $(NuGetPackagesArchiveFolder)" />
|
|
||||||
</Target>
|
|
||||||
|
|
||||||
<Target Name="SetupNuGetPackagesArchiveInputsOutputs">
|
|
||||||
<GenerateNuGetPackagesArchiveVersion ToolPath="$(OutputDirectory)" SDKVersion="$(CLI_NETSDK_Version)">
|
|
||||||
<Output TaskParameter="Version" PropertyName="NuGetPackagesArchiveVersion" />
|
|
||||||
</GenerateNuGetPackagesArchiveVersion>
|
|
||||||
<PropertyGroup>
|
|
||||||
<NugetPackagesArchiveName>nuGetPackagesArchive.$(NuGetPackagesArchiveVersion).lzma</NugetPackagesArchiveName>
|
|
||||||
<IntermediateArchive>$(IntermediateDirectory)/$(NugetPackagesArchiveName)</IntermediateArchive>
|
|
||||||
<NugetPackagesArchiveRelativeBlobUrl>$(Product)/NuGetPackagesArchives</NugetPackagesArchiveRelativeBlobUrl>
|
|
||||||
<NugetPackagesArchiveBlobUrl>$(DotnetBlobRootUrl)/$(NugetPackagesArchiveRelativeBlobUrl)/$(NugetPackagesArchiveName)</NugetPackagesArchiveBlobUrl>
|
|
||||||
</PropertyGroup>
|
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
@ -33,6 +33,14 @@
|
||||||
SkipUnchangedFiles="False"
|
SkipUnchangedFiles="False"
|
||||||
UseHardlinksIfPossible="False" />
|
UseHardlinksIfPossible="False" />
|
||||||
|
|
||||||
|
<!-- Create layout: Aspnet runtime -->
|
||||||
|
<Copy
|
||||||
|
DestinationFiles="@(AspNetRuntimeFilesInput ->'$(LayoutPackageRootDir)/%(RecursiveDir)%(Filename)%(Extension)')"
|
||||||
|
SourceFiles="@(AspNetRuntimeFilesInput)"
|
||||||
|
OverwriteReadOnlyFiles="True"
|
||||||
|
SkipUnchangedFiles="False"
|
||||||
|
UseHardlinksIfPossible="False" />
|
||||||
|
|
||||||
<!-- Create layout: Man Pages -->
|
<!-- Create layout: Man Pages -->
|
||||||
<Copy
|
<Copy
|
||||||
DestinationFiles="@(SdkDebManPageFiles->'$(LayoutDocsDir)/%(RecursiveDir)%(Filename)-$(SdkVersion)%(Extension)')"
|
DestinationFiles="@(SdkDebManPageFiles->'$(LayoutDocsDir)/%(RecursiveDir)%(Filename)-$(SdkVersion)%(Extension)')"
|
||||||
|
@ -41,6 +49,14 @@
|
||||||
SkipUnchangedFiles="False"
|
SkipUnchangedFiles="False"
|
||||||
UseHardlinksIfPossible="False" />
|
UseHardlinksIfPossible="False" />
|
||||||
|
|
||||||
|
<!-- Create layout: postinst -->
|
||||||
|
<Copy
|
||||||
|
DestinationFiles= "$(DebianPostinstFile)"
|
||||||
|
SourceFiles="$(DebianPostinstTemplateFile)"
|
||||||
|
OverwriteReadOnlyFiles="True"
|
||||||
|
SkipUnchangedFiles="False"
|
||||||
|
UseHardlinksIfPossible="False" />
|
||||||
|
|
||||||
<!-- Create layout: Generate and Place debian_config.json -->
|
<!-- Create layout: Generate and Place debian_config.json -->
|
||||||
<ReplaceFileContents
|
<ReplaceFileContents
|
||||||
InputFile="$(DebianConfigTemplateFile)"
|
InputFile="$(DebianConfigTemplateFile)"
|
||||||
|
|
|
@ -75,6 +75,11 @@
|
||||||
<DebianConfigJsonFile>$(LayoutDirectory)/debian_config.json</DebianConfigJsonFile>
|
<DebianConfigJsonFile>$(LayoutDirectory)/debian_config.json</DebianConfigJsonFile>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<DebianPostinstTemplateFile>$(RepoRoot)/packaging/deb/postinst</DebianPostinstTemplateFile>
|
||||||
|
<DebianPostinstFile>$(LayoutDirectory)/debian/postinst</DebianPostinstFile>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%">
|
<DebianConfigTokenValues Include="%SHARED_FRAMEWORK_DEBIAN_PACKAGE_NAME%">
|
||||||
<ReplacementString>$(SharedFxDebianPackageName)</ReplacementString>
|
<ReplacementString>$(SharedFxDebianPackageName)</ReplacementString>
|
||||||
|
|
|
@ -115,6 +115,7 @@
|
||||||
|
|
||||||
<Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateBundlePowershellScript)
|
<Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateBundlePowershellScript)
|
||||||
'$(SdkInstallerFile)'
|
'$(SdkInstallerFile)'
|
||||||
|
'$(AspNetCoreRuntimeInstallerWixLibFile)'
|
||||||
'$(DownloadedSharedFrameworkInstallerFile)'
|
'$(DownloadedSharedFrameworkInstallerFile)'
|
||||||
'$(DownloadedHostFxrInstallerFile)'
|
'$(DownloadedHostFxrInstallerFile)'
|
||||||
'$(DownloadedSharedHostInstallerFile)'
|
'$(DownloadedSharedHostInstallerFile)'
|
||||||
|
@ -146,13 +147,13 @@
|
||||||
<Target Name="GenerateSdkMSBuildExtensionsNupkg"
|
<Target Name="GenerateSdkMSBuildExtensionsNupkg"
|
||||||
DependsOnTargets="Init;Layout;MsiTargetsSetupInputOutputs;GenerateSdkBundle"
|
DependsOnTargets="Init;Layout;MsiTargetsSetupInputOutputs;GenerateSdkBundle"
|
||||||
Condition=" '$(OS)' == 'Windows_NT'"
|
Condition=" '$(OS)' == 'Windows_NT'"
|
||||||
Inputs="$(GeneratedMSBuildExtensionsDirectory)/**/*;
|
Inputs="$(SdkResolverOutputDirectory)/**/*;
|
||||||
$(SdkInstallerNuspecFile);
|
$(SdkInstallerNuspecFile);
|
||||||
$(SdkGenerateNupkgPowershellScript)"
|
$(SdkGenerateNupkgPowershellScript)"
|
||||||
Outputs="$(SdkInstallerNupkgFile)">
|
Outputs="$(SdkInstallerNupkgFile)">
|
||||||
|
|
||||||
<Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateNupkgPowershellScript)
|
<Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateNupkgPowershellScript)
|
||||||
'$(GeneratedMSBuildExtensionsDirectory)'
|
'$(SdkResolverOutputDirectory)'
|
||||||
'$(FullNugetVersion)'
|
'$(FullNugetVersion)'
|
||||||
'$(SdkMSBuildExtensionsNuspecFile)'
|
'$(SdkMSBuildExtensionsNuspecFile)'
|
||||||
'$(SdkMSBuildExtensionsNupkgFile)'" />
|
'$(SdkMSBuildExtensionsNupkgFile)'" />
|
||||||
|
|
|
@ -80,6 +80,9 @@
|
||||||
DependsOnTargets="Init;Layout;SetupPkgInputsOutputs"
|
DependsOnTargets="Init;Layout;SetupPkgInputsOutputs"
|
||||||
Condition=" '$(OSName)' == 'osx' ">
|
Condition=" '$(OSName)' == 'osx' ">
|
||||||
|
|
||||||
|
<Copy SourceFiles="@(AspNetRuntimeFilesInput)"
|
||||||
|
DestinationFiles="@(AspNetRuntimeFilesInput->'$(SdkLayoutOutputDirectory)/%(RecursiveDir)%(FileName)%(Extension)')" />
|
||||||
|
|
||||||
<Exec Command="pkgbuild
|
<Exec Command="pkgbuild
|
||||||
--root '$(SdkLayoutOutputDirectory)'
|
--root '$(SdkLayoutOutputDirectory)'
|
||||||
--identifier '$(SdkComponentId)'
|
--identifier '$(SdkComponentId)'
|
||||||
|
|
|
@ -14,6 +14,10 @@
|
||||||
<CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" />
|
<CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" />
|
||||||
<CombinedFrameworkSdkInput Include="$(OutputDirectory)/shared/**/*" />
|
<CombinedFrameworkSdkInput Include="$(OutputDirectory)/shared/**/*" />
|
||||||
<CombinedFrameworkSdkInput Include="$(OutputDirectory)/sdk/**/*" />
|
<CombinedFrameworkSdkInput Include="$(OutputDirectory)/sdk/**/*" />
|
||||||
|
<CombinedFrameworkSdkInput Include="$(OutputDirectory)/additionalDeps/**/*" />
|
||||||
|
<CombinedFrameworkSdkInput Include="$(OutputDirectory)/store/**/*" />
|
||||||
|
|
||||||
|
<AspNetRuntimeFilesInput Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<MakeRelative
|
<MakeRelative
|
||||||
|
|
|
@ -136,6 +136,24 @@
|
||||||
<VersionSuffix></VersionSuffix>
|
<VersionSuffix></VersionSuffix>
|
||||||
<Clean>True</Clean>
|
<Clean>True</Clean>
|
||||||
</BaseTestPackageProject>
|
</BaseTestPackageProject>
|
||||||
|
<BaseTestPackageProject Include="TestAssets/TestPackages/dotnet-portable-v1">
|
||||||
|
<Name>dotnet-portable</Name>
|
||||||
|
<ProjectName>dotnet-portable-v1.csproj</ProjectName>
|
||||||
|
<IsTool>True</IsTool>
|
||||||
|
<IsApplicable>True</IsApplicable>
|
||||||
|
<VersionPrefix>1.0.0</VersionPrefix>
|
||||||
|
<VersionSuffix></VersionSuffix>
|
||||||
|
<Clean>True</Clean>
|
||||||
|
</BaseTestPackageProject>
|
||||||
|
<BaseTestPackageProject Include="TestAssets/TestPackages/dotnet-portable-v1-prefercli">
|
||||||
|
<Name>dotnet-portable</Name>
|
||||||
|
<ProjectName>dotnet-portable-v1-prefercli.csproj</ProjectName>
|
||||||
|
<IsTool>True</IsTool>
|
||||||
|
<IsApplicable>True</IsApplicable>
|
||||||
|
<VersionPrefix>1.0.0</VersionPrefix>
|
||||||
|
<VersionSuffix></VersionSuffix>
|
||||||
|
<Clean>True</Clean>
|
||||||
|
</BaseTestPackageProject>
|
||||||
<BaseTestPackageProject Include="TestAssets/TestPackages/dotnet-fallbackfoldertool">
|
<BaseTestPackageProject Include="TestAssets/TestPackages/dotnet-fallbackfoldertool">
|
||||||
<Name>dotnet-fallbackfoldertool</Name>
|
<Name>dotnet-fallbackfoldertool</Name>
|
||||||
<ProjectName>dotnet-fallbackfoldertool.csproj</ProjectName>
|
<ProjectName>dotnet-fallbackfoldertool.csproj</ProjectName>
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Scripts
|
namespace Microsoft.DotNet.Scripts
|
||||||
{
|
{
|
||||||
|
@ -35,11 +38,10 @@ namespace Microsoft.DotNet.Scripts
|
||||||
private Lazy<string> _password = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PASSWORD"));
|
private Lazy<string> _password = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PASSWORD"));
|
||||||
|
|
||||||
private Lazy<string> _dotNetVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("DOTNET_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info"));
|
private Lazy<string> _dotNetVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("DOTNET_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info"));
|
||||||
private Lazy<string> _roslynVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("ROSLYN_VERSION_FRAGMENT", "dotnet/roslyn/netcore1.0"));
|
private Lazy<string> _coreSetupVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("CORESETUP_VERSION_FRAGMENT", GetDefaultCoreSetupVersionFragment()));
|
||||||
private Lazy<string> _coreSetupVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("CORESETUP_VERSION_FRAGMENT", "dotnet/core-setup/master"));
|
|
||||||
private Lazy<string> _gitHubUpstreamOwner = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_OWNER", "dotnet"));
|
private Lazy<string> _gitHubUpstreamOwner = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_OWNER", "dotnet"));
|
||||||
private Lazy<string> _gitHubProject = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PROJECT", "cli"));
|
private Lazy<string> _gitHubProject = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_PROJECT", "cli"));
|
||||||
private Lazy<string> _gitHubUpstreamBranch = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_BRANCH", "master"));
|
private Lazy<string> _gitHubUpstreamBranch = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_BRANCH", GetDefaultUpstreamBranch()));
|
||||||
private Lazy<string[]> _gitHubPullRequestNotifications = new Lazy<string[]>(() =>
|
private Lazy<string[]> _gitHubPullRequestNotifications = new Lazy<string[]>(() =>
|
||||||
GetEnvironmentVariable("GITHUB_PULL_REQUEST_NOTIFICATIONS", "")
|
GetEnvironmentVariable("GITHUB_PULL_REQUEST_NOTIFICATIONS", "")
|
||||||
.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
|
.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
|
||||||
|
@ -51,7 +53,6 @@ namespace Microsoft.DotNet.Scripts
|
||||||
public string Email => _email.Value;
|
public string Email => _email.Value;
|
||||||
public string Password => _password.Value;
|
public string Password => _password.Value;
|
||||||
public string DotNetVersionUrl => _dotNetVersionUrl.Value;
|
public string DotNetVersionUrl => _dotNetVersionUrl.Value;
|
||||||
public string RoslynVersionFragment => _roslynVersionFragment.Value;
|
|
||||||
public string CoreSetupVersionFragment => _coreSetupVersionFragment.Value;
|
public string CoreSetupVersionFragment => _coreSetupVersionFragment.Value;
|
||||||
public string GitHubUpstreamOwner => _gitHubUpstreamOwner.Value;
|
public string GitHubUpstreamOwner => _gitHubUpstreamOwner.Value;
|
||||||
public string GitHubProject => _gitHubProject.Value;
|
public string GitHubProject => _gitHubProject.Value;
|
||||||
|
@ -73,5 +74,38 @@ namespace Microsoft.DotNet.Scripts
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string GetDefaultUpstreamBranch()
|
||||||
|
{
|
||||||
|
return GetRepoMSBuildPropValue("BranchInfo.props", "BranchName") ?? "master";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetDefaultCoreSetupVersionFragment()
|
||||||
|
{
|
||||||
|
string coreSetupChannel = GetRepoMSBuildPropValue("BundledRuntimes.props", "CoreSetupChannel") ?? "master";
|
||||||
|
|
||||||
|
return $"dotnet/core-setup/{coreSetupChannel}";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetRepoMSBuildPropValue(string propsFileName, string propertyName)
|
||||||
|
{
|
||||||
|
var propsFilePath = Path.Combine(Dirs.RepoRoot, "build", propsFileName);
|
||||||
|
var root = XDocument.Load(propsFilePath).Root;
|
||||||
|
var ns = root.Name.Namespace;
|
||||||
|
|
||||||
|
var value = root
|
||||||
|
.Elements(ns + "PropertyGroup")
|
||||||
|
.Elements(ns + propertyName)
|
||||||
|
.FirstOrDefault()
|
||||||
|
?.Value;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(value))
|
||||||
|
{
|
||||||
|
Console.WriteLine($"Could not find a property named '{propertyName}' in {propsFilePath}");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@ namespace Microsoft.DotNet.Scripts
|
||||||
|
|
||||||
List<BuildInfo> buildInfos = new List<BuildInfo>();
|
List<BuildInfo> buildInfos = new List<BuildInfo>();
|
||||||
|
|
||||||
buildInfos.Add(GetBuildInfo("Roslyn", s_config.RoslynVersionFragment, fetchLatestReleaseFile: false));
|
|
||||||
buildInfos.Add(GetBuildInfo("CoreSetup", s_config.CoreSetupVersionFragment, fetchLatestReleaseFile: false));
|
buildInfos.Add(GetBuildInfo("CoreSetup", s_config.CoreSetupVersionFragment, fetchLatestReleaseFile: false));
|
||||||
|
|
||||||
IEnumerable<IDependencyUpdater> updaters = GetUpdaters();
|
IEnumerable<IDependencyUpdater> updaters = GetUpdaters();
|
||||||
|
|
12
packaging/deb/postinst
Normal file → Executable file
12
packaging/deb/postinst
Normal file → Executable file
|
@ -1,3 +1,15 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
echo "This software may collect information about you and your use of the software, and send that to Microsoft."
|
echo "This software may collect information about you and your use of the software, and send that to Microsoft."
|
||||||
echo "Please visit http://aka.ms/dotnet-cli-eula for more information."
|
echo "Please visit http://aka.ms/dotnet-cli-eula for more information."
|
||||||
|
|
||||||
|
# Run 'dotnet new' as the user to trigger the first time experience to initialize the cache
|
||||||
|
echo "Welcome to .NET Core!
|
||||||
|
---------------------
|
||||||
|
Learn more about .NET Core @ https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
|
||||||
|
|
||||||
|
Telemetry
|
||||||
|
--------------
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community.
|
||||||
|
You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell.
|
||||||
|
You can read more about .NET Core tools telemetry @ https://aka.ms/dotnet-cli-telemetry."
|
||||||
|
su - $SUDO_USER -c "dotnet new > /dev/null 2>&1 || true"
|
||||||
|
|
|
@ -5,13 +5,12 @@
|
||||||
<background file="dotnetbackground.png" mime-type="image/png"/>
|
<background file="dotnetbackground.png" mime-type="image/png"/>
|
||||||
<options customize="never" require-scripts="false" />
|
<options customize="never" require-scripts="false" />
|
||||||
<welcome file="welcome.html" mime-type="text/html" />
|
<welcome file="welcome.html" mime-type="text/html" />
|
||||||
|
<conclusion file="firstTimeWelcomeMessage.html" mime-type="text/html" />
|
||||||
<volume-check>
|
<volume-check>
|
||||||
<allowed-os-version>
|
<allowed-os-version>
|
||||||
<os-version min="10.12" />
|
<os-version min="10.12" />
|
||||||
</allowed-os-version>
|
</allowed-os-version>
|
||||||
</volume-check>
|
</volume-check>
|
||||||
|
|
||||||
|
|
||||||
<choices-outline>
|
<choices-outline>
|
||||||
<line choice="{SharedFxComponentId}.pkg" />
|
<line choice="{SharedFxComponentId}.pkg" />
|
||||||
<line choice="{HostFxrComponentId}.pkg" />
|
<line choice="{HostFxrComponentId}.pkg" />
|
||||||
|
@ -24,7 +23,7 @@
|
||||||
<choice id="{HostFxrComponentId}.pkg" visible="true" title="{HostFxrBrandName} (x64)" description="The .NET Core Host FX Resolver">
|
<choice id="{HostFxrComponentId}.pkg" visible="true" title="{HostFxrBrandName} (x64)" description="The .NET Core Host FX Resolver">
|
||||||
<pkg-ref id="{HostFxrComponentId}.pkg" />
|
<pkg-ref id="{HostFxrComponentId}.pkg" />
|
||||||
</choice>
|
</choice>
|
||||||
<choice id="{SharedHostComponentId}.pkg" visible="true" title="{SharedHostBrandName} (x64)" description="The .NET Core Shared Host." >
|
<choice id="{SharedHostComponentId}.pkg" visible="true" title="{SharedHostBrandName} (x64)" description="The .NET Core Shared Host.">
|
||||||
<pkg-ref id="{SharedHostComponentId}.pkg" />
|
<pkg-ref id="{SharedHostComponentId}.pkg" />
|
||||||
</choice>
|
</choice>
|
||||||
<choice id="{CLISdkComponentId}.pkg" visible="true" title="{CLISdkBrandName} (x64)" description="The .NET Core SDK">
|
<choice id="{CLISdkComponentId}.pkg" visible="true" title="{CLISdkBrandName} (x64)" description="The .NET Core SDK">
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title styles="color:white">Welcome to .NET Core!</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<font face="Helvetica">
|
||||||
|
<h3>
|
||||||
|
Welcome to .NET Core!
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
Learn more about .NET Core at <a href="https://aka.ms/dotnet-docs">https://aka.ms/dotnet-docs</a> . Use dotnet --help to see available commands or go to <a href="https://aka.ms/dotnet-cli-docs">https://aka.ms/dotnet-cli-docs</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Telemetry
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at <a href="https://aka.ms/dotnet-cli-telemetry">https://aka.ms/dotnet-cli-telemetry</a>.
|
||||||
|
</p>
|
||||||
|
<h3>
|
||||||
|
Configuration
|
||||||
|
</h3>
|
||||||
|
<p>
|
||||||
|
A command is run in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</p>
|
||||||
|
</font>
|
||||||
|
|
||||||
|
</body></html>
|
|
@ -11,4 +11,8 @@ INSTALL_DESTINATION=$2
|
||||||
# A temporary fix for the permissions issue(s)
|
# A temporary fix for the permissions issue(s)
|
||||||
chmod -R 755 $INSTALL_DESTINATION
|
chmod -R 755 $INSTALL_DESTINATION
|
||||||
|
|
||||||
|
# Run 'dotnet new' as user to trigger the first time experience to initialize the cache
|
||||||
|
INSTALLER_USER=$(stat -f '%Su' $HOME)
|
||||||
|
su - $INSTALLER_USER -c "$INSTALL_DESTINATION/dotnet new > /dev/null 2>&1 || true"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
|
<Theme xmlns="http://wixtoolset.org/schemas/thmutil/2010">
|
||||||
<Window Width="620" Height="418" HexStyle="100a0000" FontId="0">#(loc.Caption)</Window>
|
<Window Width="620" Height="468" HexStyle="100a0000" FontId="0">#(loc.Caption)</Window>
|
||||||
<Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
<Font Id="0" Height="-12" Weight="500" Foreground="000000" Background="FFFFFF">Segoe UI</Font>
|
||||||
<Font Id="1" Height="-24" Weight="900" Foreground="FFFFFF" Background="682079">Segoe UI</Font>
|
<Font Id="1" Height="-24" Weight="900" Foreground="FFFFFF" Background="682079">Segoe UI</Font>
|
||||||
<Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
|
<Font Id="2" Height="-22" Weight="500" Foreground="666666">Segoe UI</Font>
|
||||||
|
@ -52,6 +52,7 @@
|
||||||
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ProgressHeader)</Text>
|
<Text X="11" Y="80" Width="-11" Height="30" FontId="2" DisablePrefix="yes">#(loc.ProgressHeader)</Text>
|
||||||
<Text X="11" Y="121" Width="70" Height="17" FontId="3" DisablePrefix="yes">#(loc.ProgressLabel)</Text>
|
<Text X="11" Y="121" Width="70" Height="17" FontId="3" DisablePrefix="yes">#(loc.ProgressLabel)</Text>
|
||||||
<Text Name="OverallProgressPackageText" X="85" Y="121" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text>
|
<Text Name="OverallProgressPackageText" X="85" Y="121" Width="-11" Height="17" FontId="3" DisablePrefix="yes">#(loc.OverallProgressPackageText)</Text>
|
||||||
|
<Text X="160" Y="180" Width="442" Height="300" FontId="3">#(loc.FirstTimeWelcomeMessage)</Text>
|
||||||
<Progressbar Name="OverallCalculatedProgressbar" X="11" Y="143" Width="-11" Height="15" />
|
<Progressbar Name="OverallCalculatedProgressbar" X="11" Y="143" Width="-11" Height="15" />
|
||||||
<Button Name="ProgressCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ProgressCancelButton)</Button>
|
<Button Name="ProgressCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.ProgressCancelButton)</Button>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
|
@ -51,4 +51,11 @@ Ready? Set? Let's go!</String>
|
||||||
<String Id="FilesInUseDontCloseRadioButton">&Do not close applications. A reboot will be required.</String>
|
<String Id="FilesInUseDontCloseRadioButton">&Do not close applications. A reboot will be required.</String>
|
||||||
<String Id="FilesInUseOkButton">&OK</String>
|
<String Id="FilesInUseOkButton">&OK</String>
|
||||||
<String Id="FilesInUseCancelButton">&Cancel</String>
|
<String Id="FilesInUseCancelButton">&Cancel</String>
|
||||||
|
<String Id="FirstTimeWelcomeMessage">Welcome to .NET Core!
|
||||||
|
Learn more about .NET Core at https://aka.ms/dotnet-docs. Use dotnet --help to see available commands or go to https://aka.ms/dotnet-cli-docs.
|
||||||
|
Telemetry:
|
||||||
|
The .NET Core tools collect usage data in order to improve your experience. The data is anonymous and does not include command-line arguments. The data is collected by Microsoft and shared with the community. You can opt out of telemetry by setting a DOTNET_CLI_TELEMETRY_OPTOUT environment variable to 1 using your favorite shell. You can read more about .NET Core tools telemetry at https://aka.ms/dotnet-cli-telemetry.
|
||||||
|
Configuration:
|
||||||
|
A command is running in the end of install process to initially populate your local package cache, to improve restore speed and enable offline access. This command will take up to a minute to complete and will only happen once.
|
||||||
|
</String>
|
||||||
</WixLocalization>
|
</WixLocalization>
|
||||||
|
|
|
@ -38,6 +38,11 @@
|
||||||
<MsiPackage SourceFile="$(var.CLISDKMsiSourcePath)">
|
<MsiPackage SourceFile="$(var.CLISDKMsiSourcePath)">
|
||||||
<MsiProperty Name="DOTNETHOME" Value="[DOTNETHOME]" />
|
<MsiProperty Name="DOTNETHOME" Value="[DOTNETHOME]" />
|
||||||
</MsiPackage>
|
</MsiPackage>
|
||||||
|
<?if $(var.Platform)=x86?>
|
||||||
|
<PackageGroupRef Id="PG_AspNetCorePackageStore_x86"/>
|
||||||
|
<?elseif $(var.Platform)=x64?>
|
||||||
|
<PackageGroupRef Id="PG_AspNetCorePackageStore_x64"/>
|
||||||
|
<?endif?>
|
||||||
</Chain>
|
</Chain>
|
||||||
</Bundle>
|
</Bundle>
|
||||||
|
|
||||||
|
|
|
@ -1,45 +1,48 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||||
<?include "Variables.wxi" ?>
|
<?include "Variables.wxi" ?>
|
||||||
<Product Id="*" Name="$(var.ProductName)" Language="$(var.ProductLanguage)" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
|
<Product Id="*" Name="$(var.ProductName)" Language="$(var.ProductLanguage)" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
|
||||||
<Package Compressed="yes" InstallScope="perMachine" InstallerVersion="200" />
|
<Package Compressed="yes" InstallScope="perMachine" InstallerVersion="200" />
|
||||||
|
|
||||||
<MajorUpgrade DowngradeErrorMessage="$(var.DowngradeErrorMessage)" Schedule="afterInstallInitialize"/>
|
<MajorUpgrade DowngradeErrorMessage="$(var.DowngradeErrorMessage)" Schedule="afterInstallInitialize"/>
|
||||||
|
|
||||||
<MediaTemplate CabinetTemplate="dnet-{0}.cab" CompressionLevel="high" />
|
<MediaTemplate CabinetTemplate="dnet-{0}.cab" CompressionLevel="high" />
|
||||||
|
|
||||||
<Feature Id="MainFeature" Title="Main Feature" Level="1">
|
<Feature Id="MainFeature" Title="Main Feature" Level="1">
|
||||||
<ComponentGroupRef Id="InstallFiles" />
|
<ComponentGroupRef Id="InstallFiles" />
|
||||||
<ComponentGroupRef Id="AuthoredRegistryKeys"/>
|
<ComponentGroupRef Id="AuthoredRegistryKeys"/>
|
||||||
</Feature>
|
</Feature>
|
||||||
<Feature Id="Provider" Absent="disallow" AllowAdvertise="no" Description="Used for Ref Counting" Display="hidden" Level="1" InstallDefault="local" Title="RefCounting" TypicalDefault="install">
|
<Feature Id="Provider" Absent="disallow" AllowAdvertise="no" Description="Used for Ref Counting" Display="hidden" Level="1" InstallDefault="local" Title="RefCounting" TypicalDefault="install">
|
||||||
<ComponentRef Id="$(var.DependencyKeyId)" />
|
<ComponentRef Id="$(var.DependencyKeyId)" />
|
||||||
</Feature>
|
</Feature>
|
||||||
<Property Id="ProductFamily" Value="$(var.ProductFamily)" />
|
<Property Id="ProductFamily" Value="$(var.ProductFamily)" />
|
||||||
<Property Id="ProductEdition" Value="$(var.ProductEdition)" />
|
<Property Id="ProductEdition" Value="$(var.ProductEdition)" />
|
||||||
<Property Id="ProductCPU" Value="$(var.Platform)" />
|
<Property Id="ProductCPU" Value="$(var.Platform)" />
|
||||||
<Property Id="RTM_ProductVersion" Value="$(var.Dotnet_ProductVersion)" />
|
<Property Id="RTM_ProductVersion" Value="$(var.Dotnet_ProductVersion)" />
|
||||||
<Property Id="MSIFASTINSTALL" Value="7" />
|
<Property Id="MSIFASTINSTALL" Value="7" />
|
||||||
|
<WixVariable Id="WixUILicenseRtf" Value="$(var.MicrosoftEula)" />
|
||||||
|
|
||||||
<WixVariable Id="WixUILicenseRtf" Value="$(var.MicrosoftEula)" />
|
<Property Id="DOTNETEXE">
|
||||||
|
<DirectorySearch Id="DOTNETPATH" Path="[#DOTNETHOME]">
|
||||||
|
<FileSearch Id="DOTNETEXESEARCH" Name="dotnet.exe" />
|
||||||
|
</DirectorySearch>
|
||||||
|
</Property>
|
||||||
|
|
||||||
<CustomActionRef Id="WixBroadcastEnvironmentChange" />
|
<CustomActionRef Id="WixBroadcastEnvironmentChange" />
|
||||||
|
|
||||||
<CustomAction Id="RunDotnetNewToTriggerFirstTimeExperienceToPrimeCache"
|
<CustomAction Id="PropertyAssign" Property="QtExecDotnetnew" Value=""[DOTNETHOME]\dotnet.exe" new" Execute="immediate" />
|
||||||
ExeCommand="dotnet.exe new"
|
<CustomAction Id="QtExecDotnetnew" BinaryKey="WixCA" DllEntry="$(var.WixQuietExec)" Execute="deferred" Return="ignore" Impersonate="no"/>
|
||||||
Directory="DOTNETHOME"
|
|
||||||
Execute="immediate"
|
<InstallExecuteSequence>
|
||||||
Return="ignore"/>
|
<Custom Action="PropertyAssign" Before="QtExecDotnetnew" />
|
||||||
<InstallExecuteSequence>
|
<Custom Action="QtExecDotnetnew" Before="InstallFinalize" />
|
||||||
<Custom Action="RunDotnetNewToTriggerFirstTimeExperienceToPrimeCache"
|
</InstallExecuteSequence>
|
||||||
After="InstallFinalize" />
|
</Product>
|
||||||
</InstallExecuteSequence>
|
<Fragment>
|
||||||
</Product>
|
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||||
<Fragment>
|
<Directory Id="$(var.Program_Files)">
|
||||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
<Directory Id="DOTNETHOME" Name="dotnet"/>
|
||||||
<Directory Id="$(var.Program_Files)">
|
</Directory>
|
||||||
<Directory Id="DOTNETHOME" Name="dotnet"/>
|
</Directory>
|
||||||
</Directory>
|
</Fragment>
|
||||||
</Directory>
|
|
||||||
</Fragment>
|
|
||||||
</Wix>
|
</Wix>
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
param(
|
param(
|
||||||
[Parameter(Mandatory=$true)][string]$CLISDKMSIFile,
|
[Parameter(Mandatory=$true)][string]$CLISDKMSIFile,
|
||||||
|
[Parameter(Mandatory=$true)][string]$ASPNETRuntimeWixLibFile,
|
||||||
[Parameter(Mandatory=$true)][string]$SharedFxMSIFile,
|
[Parameter(Mandatory=$true)][string]$SharedFxMSIFile,
|
||||||
[Parameter(Mandatory=$true)][string]$HostFxrMSIFile,
|
[Parameter(Mandatory=$true)][string]$HostFxrMSIFile,
|
||||||
[Parameter(Mandatory=$true)][string]$SharedHostMSIFile,
|
[Parameter(Mandatory=$true)][string]$SharedHostMSIFile,
|
||||||
|
@ -69,6 +70,7 @@ function RunLightForBundle
|
||||||
.\light.exe -nologo `
|
.\light.exe -nologo `
|
||||||
-cultures:en-us `
|
-cultures:en-us `
|
||||||
bundle.wixobj `
|
bundle.wixobj `
|
||||||
|
$ASPNETRuntimeWixlibFile `
|
||||||
-ext WixBalExtension.dll `
|
-ext WixBalExtension.dll `
|
||||||
-ext WixUtilExtension.dll `
|
-ext WixUtilExtension.dll `
|
||||||
-ext WixTagExtension.dll `
|
-ext WixTagExtension.dll `
|
||||||
|
@ -91,6 +93,11 @@ if(!(Test-Path $CLISDKMSIFile))
|
||||||
throw "$CLISDKMSIFile not found"
|
throw "$CLISDKMSIFile not found"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!(Test-Path $ASPNETRuntimeWixLibFile))
|
||||||
|
{
|
||||||
|
throw "$ASPNETRuntimeWixLibFile not found"
|
||||||
|
}
|
||||||
|
|
||||||
Write-Host "Creating dotnet Bundle at $DotnetBundleOutput"
|
Write-Host "Creating dotnet Bundle at $DotnetBundleOutput"
|
||||||
|
|
||||||
if([string]::IsNullOrEmpty($WixRoot))
|
if([string]::IsNullOrEmpty($WixRoot))
|
||||||
|
|
|
@ -17,9 +17,11 @@
|
||||||
|
|
||||||
<?define Platform = "$(sys.BUILDARCH)" ?>
|
<?define Platform = "$(sys.BUILDARCH)" ?>
|
||||||
<?if $(var.Platform)=x86?>
|
<?if $(var.Platform)=x86?>
|
||||||
|
<?define WixQuietExec="WixQuietExec"?>
|
||||||
<?define Program_Files="ProgramFilesFolder"?>
|
<?define Program_Files="ProgramFilesFolder"?>
|
||||||
<?define Win64AttributeValue=no?>
|
<?define Win64AttributeValue=no?>
|
||||||
<?elseif $(var.Platform)=x64?>
|
<?elseif $(var.Platform)=x64?>
|
||||||
|
<?define WixQuietExec="WixQuietExec64"?>
|
||||||
<?define Program_Files="ProgramFiles64Folder"?>
|
<?define Program_Files="ProgramFiles64Folder"?>
|
||||||
<?define Win64AttributeValue=yes?>
|
<?define Win64AttributeValue=yes?>
|
||||||
<?else?>
|
<?else?>
|
||||||
|
|
|
@ -70,6 +70,9 @@ if (!(Test-Path $env:DOTNET_INSTALL_DIR_PJ))
|
||||||
# Disable first run since we want to control all package sources
|
# Disable first run since we want to control all package sources
|
||||||
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
||||||
|
|
||||||
|
# Don't resolve shared frameworks from user or global locations
|
||||||
|
$env:DOTNET_MULTILEVEL_LOOKUP=0
|
||||||
|
|
||||||
# Enable vs test console logging
|
# Enable vs test console logging
|
||||||
$env:VSTEST_BUILD_TRACE=1
|
$env:VSTEST_BUILD_TRACE=1
|
||||||
$env:VSTEST_TRACE_BUILD=1
|
$env:VSTEST_TRACE_BUILD=1
|
||||||
|
@ -77,8 +80,8 @@ $env:VSTEST_TRACE_BUILD=1
|
||||||
# install a stage0
|
# install a stage0
|
||||||
$dotnetInstallPath = Join-Path $RepoRoot "scripts\obtain\dotnet-install.ps1"
|
$dotnetInstallPath = Join-Path $RepoRoot "scripts\obtain\dotnet-install.ps1"
|
||||||
|
|
||||||
Write-Host "$dotnetInstallPath -Channel ""master"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
|
Write-Host "$dotnetInstallPath -Channel ""master"" -Version ""2.0.0-preview1-005867"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
|
||||||
Invoke-Expression "$dotnetInstallPath -Channel ""master"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
|
Invoke-Expression "$dotnetInstallPath -Channel ""master"" ""2.0.0-preview1-005867"" -InstallDir $env:DOTNET_INSTALL_DIR -Architecture ""$Architecture"""
|
||||||
if ($LastExitCode -ne 0)
|
if ($LastExitCode -ne 0)
|
||||||
{
|
{
|
||||||
Write-Output "The .NET CLI installation failed with exit code $LastExitCode"
|
Write-Output "The .NET CLI installation failed with exit code $LastExitCode"
|
||||||
|
@ -105,6 +108,6 @@ if ($NoBuild)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dotnet msbuild build.proj /p:Architecture=$Architecture /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles
|
dotnet msbuild build.proj /p:Architecture=$Architecture /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles
|
||||||
dotnet msbuild build.proj /m /v:diag /fl /flp:v=diag /p:Architecture=$Architecture $ExtraParameters
|
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$Architecture $ExtraParameters
|
||||||
if($LASTEXITCODE -ne 0) { throw "Failed to build" }
|
if($LASTEXITCODE -ne 0) { throw "Failed to build" }
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,8 +150,12 @@ export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
||||||
export VSTEST_BUILD_TRACE=1
|
export VSTEST_BUILD_TRACE=1
|
||||||
export VSTEST_TRACE_BUILD=1
|
export VSTEST_TRACE_BUILD=1
|
||||||
|
|
||||||
|
|
||||||
|
# Don't resolve shared frameworks from user or global locations
|
||||||
|
DOTNET_MULTILEVEL_LOOKUP=0
|
||||||
|
|
||||||
# Install a stage 0
|
# Install a stage 0
|
||||||
(set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --channel "master" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)
|
(set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --channel "master" --version "2.0.0-preview1-005867" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
if [ $EXIT_CODE != 0 ]; then
|
if [ $EXIT_CODE != 0 ]; then
|
||||||
echo "run-build: Error: installing stage0 with exit code $EXIT_CODE." >&2
|
echo "run-build: Error: installing stage0 with exit code $EXIT_CODE." >&2
|
||||||
|
@ -184,7 +188,7 @@ echo "${args[@]}"
|
||||||
|
|
||||||
if [ $BUILD -eq 1 ]; then
|
if [ $BUILD -eq 1 ]; then
|
||||||
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles
|
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles
|
||||||
dotnet msbuild build.proj /m /v:diag /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS "${args[@]}"
|
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS "${args[@]}"
|
||||||
else
|
else
|
||||||
echo "Not building due to --nobuild"
|
echo "Not building due to --nobuild"
|
||||||
echo "Command that would be run is: 'dotnet msbuild build.proj /m /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS ${args[@]}'"
|
echo "Command that would be run is: 'dotnet msbuild build.proj /m /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS ${args[@]}'"
|
||||||
|
|
|
@ -1,315 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Security.Cryptography;
|
|
||||||
using System.Text;
|
|
||||||
using Microsoft.Extensions.DependencyModel;
|
|
||||||
using NuGet.Frameworks;
|
|
||||||
using NuGet.Packaging;
|
|
||||||
using NuGet.Packaging.Core;
|
|
||||||
using NuGet.ProjectModel;
|
|
||||||
|
|
||||||
namespace Microsoft.DotNet.Cli.Utils
|
|
||||||
{
|
|
||||||
internal class DepsJsonBuilder
|
|
||||||
{
|
|
||||||
private readonly VersionFolderPathResolver _versionFolderPathResolver;
|
|
||||||
|
|
||||||
public DepsJsonBuilder()
|
|
||||||
{
|
|
||||||
// This resolver is only used for building file names, so that base path is not required.
|
|
||||||
_versionFolderPathResolver = new VersionFolderPathResolver(rootPath: null);
|
|
||||||
}
|
|
||||||
|
|
||||||
public DependencyContext Build(
|
|
||||||
SingleProjectInfo mainProjectInfo,
|
|
||||||
CompilationOptions compilationOptions,
|
|
||||||
LockFile lockFile,
|
|
||||||
NuGetFramework framework,
|
|
||||||
string runtime)
|
|
||||||
{
|
|
||||||
bool includeCompilationLibraries = compilationOptions != null;
|
|
||||||
|
|
||||||
LockFileTarget lockFileTarget = lockFile.GetTarget(framework, runtime);
|
|
||||||
|
|
||||||
IEnumerable<LockFileTargetLibrary> runtimeExports = lockFileTarget.GetRuntimeLibraries();
|
|
||||||
IEnumerable<LockFileTargetLibrary> compilationExports =
|
|
||||||
includeCompilationLibraries ?
|
|
||||||
lockFileTarget.GetCompileLibraries() :
|
|
||||||
Enumerable.Empty<LockFileTargetLibrary>();
|
|
||||||
|
|
||||||
var dependencyLookup = compilationExports
|
|
||||||
.Concat(runtimeExports)
|
|
||||||
.Distinct()
|
|
||||||
.Select(library => new Dependency(library.Name, library.Version.ToString()))
|
|
||||||
.ToDictionary(dependency => dependency.Name, StringComparer.OrdinalIgnoreCase);
|
|
||||||
|
|
||||||
var libraryLookup = lockFile.Libraries.ToDictionary(l => l.Name, StringComparer.OrdinalIgnoreCase);
|
|
||||||
|
|
||||||
var runtimeSignature = GenerateRuntimeSignature(runtimeExports);
|
|
||||||
|
|
||||||
IEnumerable<RuntimeLibrary> runtimeLibraries =
|
|
||||||
GetLibraries(runtimeExports, libraryLookup, dependencyLookup, runtime: true).Cast<RuntimeLibrary>();
|
|
||||||
|
|
||||||
IEnumerable<CompilationLibrary> compilationLibraries;
|
|
||||||
if (includeCompilationLibraries)
|
|
||||||
{
|
|
||||||
CompilationLibrary projectCompilationLibrary = GetProjectCompilationLibrary(
|
|
||||||
mainProjectInfo,
|
|
||||||
lockFile,
|
|
||||||
lockFileTarget,
|
|
||||||
dependencyLookup);
|
|
||||||
compilationLibraries = new[] { projectCompilationLibrary }
|
|
||||||
.Concat(
|
|
||||||
GetLibraries(compilationExports, libraryLookup, dependencyLookup, runtime: false)
|
|
||||||
.Cast<CompilationLibrary>());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
compilationLibraries = Enumerable.Empty<CompilationLibrary>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new DependencyContext(
|
|
||||||
new TargetInfo(framework.DotNetFrameworkName, runtime, runtimeSignature, lockFileTarget.IsPortable()),
|
|
||||||
compilationOptions ?? CompilationOptions.Default,
|
|
||||||
compilationLibraries,
|
|
||||||
runtimeLibraries,
|
|
||||||
new RuntimeFallbacks[] { });
|
|
||||||
}
|
|
||||||
|
|
||||||
private static string GenerateRuntimeSignature(IEnumerable<LockFileTargetLibrary> runtimeExports)
|
|
||||||
{
|
|
||||||
var sha1 = SHA1.Create();
|
|
||||||
var builder = new StringBuilder();
|
|
||||||
var packages = runtimeExports
|
|
||||||
.Where(libraryExport => libraryExport.Type == "package");
|
|
||||||
var separator = "|";
|
|
||||||
foreach (var libraryExport in packages)
|
|
||||||
{
|
|
||||||
builder.Append(libraryExport.Name);
|
|
||||||
builder.Append(separator);
|
|
||||||
builder.Append(libraryExport.Version.ToString());
|
|
||||||
builder.Append(separator);
|
|
||||||
}
|
|
||||||
var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(builder.ToString()));
|
|
||||||
|
|
||||||
builder.Clear();
|
|
||||||
foreach (var hashByte in hash)
|
|
||||||
{
|
|
||||||
builder.AppendFormat("{0:x2}", hashByte);
|
|
||||||
}
|
|
||||||
return builder.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<Dependency> GetProjectDependencies(
|
|
||||||
LockFile lockFile,
|
|
||||||
LockFileTarget lockFileTarget,
|
|
||||||
Dictionary<string, Dependency> dependencyLookup)
|
|
||||||
{
|
|
||||||
|
|
||||||
List<Dependency> dependencies = new List<Dependency>();
|
|
||||||
|
|
||||||
IEnumerable<ProjectFileDependencyGroup> projectFileDependencies = lockFile
|
|
||||||
.ProjectFileDependencyGroups
|
|
||||||
.Where(dg => dg.FrameworkName == string.Empty ||
|
|
||||||
dg.FrameworkName == lockFileTarget.TargetFramework.DotNetFrameworkName);
|
|
||||||
|
|
||||||
foreach (string projectFileDependency in projectFileDependencies.SelectMany(dg => dg.Dependencies))
|
|
||||||
{
|
|
||||||
int separatorIndex = projectFileDependency.IndexOf(' ');
|
|
||||||
string dependencyName = separatorIndex > 0 ?
|
|
||||||
projectFileDependency.Substring(0, separatorIndex) :
|
|
||||||
projectFileDependency;
|
|
||||||
|
|
||||||
Dependency dependency;
|
|
||||||
if (dependencyLookup.TryGetValue(dependencyName, out dependency))
|
|
||||||
{
|
|
||||||
dependencies.Add(dependency);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dependencies;
|
|
||||||
}
|
|
||||||
|
|
||||||
private RuntimeLibrary GetProjectRuntimeLibrary(
|
|
||||||
SingleProjectInfo projectInfo,
|
|
||||||
LockFile lockFile,
|
|
||||||
LockFileTarget lockFileTarget,
|
|
||||||
Dictionary<string, Dependency> dependencyLookup)
|
|
||||||
{
|
|
||||||
|
|
||||||
RuntimeAssetGroup[] runtimeAssemblyGroups = new[] { new RuntimeAssetGroup(string.Empty, projectInfo.GetOutputName()) };
|
|
||||||
|
|
||||||
List<Dependency> dependencies = GetProjectDependencies(lockFile, lockFileTarget, dependencyLookup);
|
|
||||||
|
|
||||||
ResourceAssembly[] resourceAssemblies = projectInfo
|
|
||||||
.ResourceAssemblies
|
|
||||||
.Select(r => new ResourceAssembly(r.RelativePath, r.Culture))
|
|
||||||
.ToArray();
|
|
||||||
|
|
||||||
return new RuntimeLibrary(
|
|
||||||
type: "project",
|
|
||||||
name: projectInfo.Name,
|
|
||||||
version: projectInfo.Version,
|
|
||||||
hash: string.Empty,
|
|
||||||
runtimeAssemblyGroups: runtimeAssemblyGroups,
|
|
||||||
nativeLibraryGroups: new RuntimeAssetGroup[] { },
|
|
||||||
resourceAssemblies: resourceAssemblies,
|
|
||||||
dependencies: dependencies.ToArray(),
|
|
||||||
serviceable: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private CompilationLibrary GetProjectCompilationLibrary(
|
|
||||||
SingleProjectInfo projectInfo,
|
|
||||||
LockFile lockFile,
|
|
||||||
LockFileTarget lockFileTarget,
|
|
||||||
Dictionary<string, Dependency> dependencyLookup)
|
|
||||||
{
|
|
||||||
List<Dependency> dependencies = GetProjectDependencies(lockFile, lockFileTarget, dependencyLookup);
|
|
||||||
|
|
||||||
return new CompilationLibrary(
|
|
||||||
type: "project",
|
|
||||||
name: projectInfo.Name,
|
|
||||||
version: projectInfo.Version,
|
|
||||||
hash: string.Empty,
|
|
||||||
assemblies: new[] { projectInfo.GetOutputName() },
|
|
||||||
dependencies: dependencies.ToArray(),
|
|
||||||
serviceable: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
private IEnumerable<Library> GetLibraries(
|
|
||||||
IEnumerable<LockFileTargetLibrary> exports,
|
|
||||||
IDictionary<string, LockFileLibrary> libraryLookup,
|
|
||||||
IDictionary<string, Dependency> dependencyLookup,
|
|
||||||
bool runtime)
|
|
||||||
{
|
|
||||||
return exports.Select(export => GetLibrary(export, libraryLookup, dependencyLookup, runtime));
|
|
||||||
}
|
|
||||||
|
|
||||||
private Library GetLibrary(
|
|
||||||
LockFileTargetLibrary export,
|
|
||||||
IDictionary<string, LockFileLibrary> libraryLookup,
|
|
||||||
IDictionary<string, Dependency> dependencyLookup,
|
|
||||||
bool runtime)
|
|
||||||
{
|
|
||||||
var type = export.Type;
|
|
||||||
|
|
||||||
// TEMPORARY: All packages are serviceable in RC2
|
|
||||||
// See https://github.com/dotnet/cli/issues/2569
|
|
||||||
var serviceable = export.Type == "package";
|
|
||||||
var libraryDependencies = new HashSet<Dependency>();
|
|
||||||
|
|
||||||
foreach (PackageDependency libraryDependency in export.Dependencies)
|
|
||||||
{
|
|
||||||
Dependency dependency;
|
|
||||||
if (dependencyLookup.TryGetValue(libraryDependency.Id, out dependency))
|
|
||||||
{
|
|
||||||
libraryDependencies.Add(dependency);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
string hash = string.Empty;
|
|
||||||
string path = null;
|
|
||||||
string hashPath = null;
|
|
||||||
LockFileLibrary library;
|
|
||||||
if (libraryLookup.TryGetValue(export.Name, out library))
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrEmpty(library.Sha512))
|
|
||||||
{
|
|
||||||
hash = "sha512-" + library.Sha512;
|
|
||||||
hashPath = _versionFolderPathResolver.GetHashFileName(export.Name, export.Version);
|
|
||||||
}
|
|
||||||
|
|
||||||
path = library.Path;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (runtime)
|
|
||||||
{
|
|
||||||
return new RuntimeLibrary(
|
|
||||||
type.ToLowerInvariant(),
|
|
||||||
export.Name,
|
|
||||||
export.Version.ToString(),
|
|
||||||
hash,
|
|
||||||
CreateRuntimeAssemblyGroups(export),
|
|
||||||
CreateNativeLibraryGroups(export),
|
|
||||||
export.ResourceAssemblies.FilterPlaceHolderFiles().Select(CreateResourceAssembly),
|
|
||||||
libraryDependencies,
|
|
||||||
serviceable,
|
|
||||||
path,
|
|
||||||
hashPath);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
IEnumerable<string> assemblies = export
|
|
||||||
.CompileTimeAssemblies
|
|
||||||
.FilterPlaceHolderFiles()
|
|
||||||
.Select(libraryAsset => libraryAsset.Path);
|
|
||||||
|
|
||||||
return new CompilationLibrary(
|
|
||||||
type.ToString().ToLowerInvariant(),
|
|
||||||
export.Name,
|
|
||||||
export.Version.ToString(),
|
|
||||||
hash,
|
|
||||||
assemblies,
|
|
||||||
libraryDependencies,
|
|
||||||
serviceable,
|
|
||||||
path,
|
|
||||||
hashPath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private IReadOnlyList<RuntimeAssetGroup> CreateRuntimeAssemblyGroups(LockFileTargetLibrary export)
|
|
||||||
{
|
|
||||||
List<RuntimeAssetGroup> assemblyGroups = new List<RuntimeAssetGroup>();
|
|
||||||
|
|
||||||
assemblyGroups.Add(
|
|
||||||
new RuntimeAssetGroup(
|
|
||||||
string.Empty,
|
|
||||||
export.RuntimeAssemblies.FilterPlaceHolderFiles().Select(a => a.Path)));
|
|
||||||
|
|
||||||
foreach (var runtimeTargetsGroup in export.GetRuntimeTargetsGroups("runtime"))
|
|
||||||
{
|
|
||||||
assemblyGroups.Add(
|
|
||||||
new RuntimeAssetGroup(
|
|
||||||
runtimeTargetsGroup.Key,
|
|
||||||
runtimeTargetsGroup.Select(t => t.Path)));
|
|
||||||
}
|
|
||||||
|
|
||||||
return assemblyGroups;
|
|
||||||
}
|
|
||||||
|
|
||||||
private IReadOnlyList<RuntimeAssetGroup> CreateNativeLibraryGroups(LockFileTargetLibrary export)
|
|
||||||
{
|
|
||||||
List<RuntimeAssetGroup> nativeGroups = new List<RuntimeAssetGroup>();
|
|
||||||
|
|
||||||
nativeGroups.Add(
|
|
||||||
new RuntimeAssetGroup(
|
|
||||||
string.Empty,
|
|
||||||
export.NativeLibraries.FilterPlaceHolderFiles().Select(a => a.Path)));
|
|
||||||
|
|
||||||
foreach (var runtimeTargetsGroup in export.GetRuntimeTargetsGroups("native"))
|
|
||||||
{
|
|
||||||
nativeGroups.Add(
|
|
||||||
new RuntimeAssetGroup(
|
|
||||||
runtimeTargetsGroup.Key,
|
|
||||||
runtimeTargetsGroup.Select(t => t.Path)));
|
|
||||||
}
|
|
||||||
|
|
||||||
return nativeGroups;
|
|
||||||
}
|
|
||||||
|
|
||||||
private ResourceAssembly CreateResourceAssembly(LockFileItem resourceAssembly)
|
|
||||||
{
|
|
||||||
string locale;
|
|
||||||
if (!resourceAssembly.Properties.TryGetValue("locale", out locale))
|
|
||||||
{
|
|
||||||
locale = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return new ResourceAssembly(resourceAssembly.Path, locale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,17 +13,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
string commandName,
|
string commandName,
|
||||||
IEnumerable<string> commandArguments,
|
IEnumerable<string> commandArguments,
|
||||||
IEnumerable<string> allowedExtensions,
|
IEnumerable<string> allowedExtensions,
|
||||||
string nugetPackagesRoot,
|
LockFile lockFile,
|
||||||
CommandResolutionStrategy commandResolutionStrategy,
|
|
||||||
string depsFilePath,
|
|
||||||
string runtimeConfigPath);
|
|
||||||
|
|
||||||
CommandSpec CreateCommandSpecFromLibrary(
|
|
||||||
LockFileTargetLibrary toolLibrary,
|
|
||||||
string commandName,
|
|
||||||
IEnumerable<string> commandArguments,
|
|
||||||
IEnumerable<string> allowedExtensions,
|
|
||||||
IEnumerable<string> packageFolders,
|
|
||||||
CommandResolutionStrategy commandResolutionStrategy,
|
CommandResolutionStrategy commandResolutionStrategy,
|
||||||
string depsFilePath,
|
string depsFilePath,
|
||||||
string runtimeConfigPath);
|
string runtimeConfigPath);
|
||||||
|
|
|
@ -26,5 +26,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
NuGetFramework DotnetCliToolTargetFramework { get; }
|
NuGetFramework DotnetCliToolTargetFramework { get; }
|
||||||
|
|
||||||
Dictionary<string, string> EnvironmentVariables { get; }
|
Dictionary<string, string> EnvironmentVariables { get; }
|
||||||
|
|
||||||
|
string ToolDepsJsonGeneratorProject { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,19 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string ToolDepsJsonGeneratorProject
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var generatorProject = _project
|
||||||
|
.AllEvaluatedProperties
|
||||||
|
.FirstOrDefault(p => p.Name.Equals("ToolDepsJsonGeneratorProject"))
|
||||||
|
?.EvaluatedValue;
|
||||||
|
|
||||||
|
return generatorProject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public MSBuildProject(
|
public MSBuildProject(
|
||||||
string msBuildProjectPath,
|
string msBuildProjectPath,
|
||||||
NuGetFramework framework,
|
NuGetFramework framework,
|
||||||
|
|
|
@ -27,28 +27,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
string commandName,
|
string commandName,
|
||||||
IEnumerable<string> commandArguments,
|
IEnumerable<string> commandArguments,
|
||||||
IEnumerable<string> allowedExtensions,
|
IEnumerable<string> allowedExtensions,
|
||||||
string nugetPackagesRoot,
|
LockFile lockFile,
|
||||||
CommandResolutionStrategy commandResolutionStrategy,
|
|
||||||
string depsFilePath,
|
|
||||||
string runtimeConfigPath)
|
|
||||||
{
|
|
||||||
return CreateCommandSpecFromLibrary(
|
|
||||||
toolLibrary,
|
|
||||||
commandName,
|
|
||||||
commandArguments,
|
|
||||||
allowedExtensions,
|
|
||||||
new List<string> { nugetPackagesRoot },
|
|
||||||
commandResolutionStrategy,
|
|
||||||
depsFilePath,
|
|
||||||
runtimeConfigPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CommandSpec CreateCommandSpecFromLibrary(
|
|
||||||
LockFileTargetLibrary toolLibrary,
|
|
||||||
string commandName,
|
|
||||||
IEnumerable<string> commandArguments,
|
|
||||||
IEnumerable<string> allowedExtensions,
|
|
||||||
IEnumerable<string> packageFolders,
|
|
||||||
CommandResolutionStrategy commandResolutionStrategy,
|
CommandResolutionStrategy commandResolutionStrategy,
|
||||||
string depsFilePath,
|
string depsFilePath,
|
||||||
string runtimeConfigPath)
|
string runtimeConfigPath)
|
||||||
|
@ -72,7 +51,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandPath = GetCommandFilePath(packageFolders, toolLibrary, toolAssembly);
|
var commandPath = GetCommandFilePath(lockFile, toolLibrary, toolAssembly);
|
||||||
|
|
||||||
if (!File.Exists(commandPath))
|
if (!File.Exists(commandPath))
|
||||||
{
|
{
|
||||||
|
@ -89,21 +68,16 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
commandArguments,
|
commandArguments,
|
||||||
depsFilePath,
|
depsFilePath,
|
||||||
commandResolutionStrategy,
|
commandResolutionStrategy,
|
||||||
packageFolders,
|
lockFile.GetNormalizedPackageFolders(),
|
||||||
runtimeConfigPath);
|
runtimeConfigPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetCommandFilePath(
|
private string GetCommandFilePath(
|
||||||
IEnumerable<string> packageFolders,
|
LockFile lockFile,
|
||||||
LockFileTargetLibrary toolLibrary,
|
LockFileTargetLibrary toolLibrary,
|
||||||
LockFileItem runtimeAssembly)
|
LockFileItem runtimeAssembly)
|
||||||
{
|
{
|
||||||
var packageFoldersCount = packageFolders.Count();
|
var packageDirectory = lockFile.GetPackageDirectory(toolLibrary);
|
||||||
var userPackageFolder = packageFoldersCount == 1 ? string.Empty : packageFolders.First();
|
|
||||||
var fallbackPackageFolders = packageFoldersCount > 1 ? packageFolders.Skip(1) : packageFolders;
|
|
||||||
|
|
||||||
var packageDirectory = new FallbackPackagePathResolver(userPackageFolder, fallbackPackageFolders)
|
|
||||||
.GetPackageDirectory(toolLibrary.Name, toolLibrary.Version);
|
|
||||||
|
|
||||||
if (packageDirectory == null)
|
if (packageDirectory == null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -21,11 +21,51 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
{
|
{
|
||||||
if(PrefersCliRuntime(commandPath))
|
if(PrefersCliRuntime(commandPath))
|
||||||
{
|
{
|
||||||
arguments.Add("--fx-version");
|
var runtimeConfigFile = Path.ChangeExtension(commandPath, FileNameSuffixes.RuntimeConfigJson);
|
||||||
arguments.Add(new Muxer().SharedFxVersion);
|
|
||||||
|
if (!File.Exists(runtimeConfigFile))
|
||||||
|
{
|
||||||
|
throw new GracefulException(string.Format(LocalizableStrings.CouldNotFindToolRuntimeConfigFile,
|
||||||
|
nameof(PackagedCommandSpecFactory),
|
||||||
|
Path.GetFileName(commandPath)));
|
||||||
|
}
|
||||||
|
|
||||||
|
var runtimeConfig = new RuntimeConfig(runtimeConfigFile);
|
||||||
|
|
||||||
|
var muxer = new Muxer();
|
||||||
|
|
||||||
|
Version currentFrameworkSimpleVersion = GetVersionWithoutPrerelease(muxer.SharedFxVersion);
|
||||||
|
Version toolFrameworkSimpleVersion = GetVersionWithoutPrerelease(runtimeConfig.Framework.Version);
|
||||||
|
|
||||||
|
if (currentFrameworkSimpleVersion.Major != toolFrameworkSimpleVersion.Major)
|
||||||
|
{
|
||||||
|
Reporter.Verbose.WriteLine(
|
||||||
|
string.Format(
|
||||||
|
LocalizableStrings.IgnoringPreferCLIRuntimeFile,
|
||||||
|
nameof(PackagedCommandSpecFactory),
|
||||||
|
runtimeConfig.Framework.Version,
|
||||||
|
muxer.SharedFxVersion));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
arguments.Add("--fx-version");
|
||||||
|
arguments.Add(muxer.SharedFxVersion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Version GetVersionWithoutPrerelease(string version)
|
||||||
|
{
|
||||||
|
int dashOrPlusIndex = version.IndexOfAny(new char[] { '-', '+' });
|
||||||
|
|
||||||
|
if (dashOrPlusIndex >= 0)
|
||||||
|
{
|
||||||
|
version = version.Substring(0, dashOrPlusIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Version(version);
|
||||||
|
}
|
||||||
|
|
||||||
private static bool PrefersCliRuntime(string commandPath)
|
private static bool PrefersCliRuntime(string commandPath)
|
||||||
{
|
{
|
||||||
var libTFMPackageDirectory = Path.GetDirectoryName(commandPath);
|
var libTFMPackageDirectory = Path.GetDirectoryName(commandPath);
|
||||||
|
@ -35,7 +75,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
Reporter.Verbose.WriteLine(
|
Reporter.Verbose.WriteLine(
|
||||||
string.Format(
|
string.Format(
|
||||||
LocalizableStrings.LookingForPreferCliRuntimeFile,
|
LocalizableStrings.LookingForPreferCliRuntimeFile,
|
||||||
"packagedcommandspecfactory",
|
nameof(PackagedCommandSpecFactory),
|
||||||
preferCliRuntimePath));
|
preferCliRuntimePath));
|
||||||
|
|
||||||
return File.Exists(preferCliRuntimePath);
|
return File.Exists(preferCliRuntimePath);
|
||||||
|
|
|
@ -120,15 +120,13 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
|
|
||||||
var lockFile = project.GetLockFile();
|
var lockFile = project.GetLockFile();
|
||||||
var toolLibrary = GetToolLibraryForContext(lockFile, commandName, framework);
|
var toolLibrary = GetToolLibraryForContext(lockFile, commandName, framework);
|
||||||
var normalizedNugetPackagesRoot =
|
|
||||||
PathUtility.EnsureNoTrailingDirectorySeparator(lockFile.PackageFolders.First().Path);
|
|
||||||
|
|
||||||
var commandSpec = _packagedCommandSpecFactory.CreateCommandSpecFromLibrary(
|
var commandSpec = _packagedCommandSpecFactory.CreateCommandSpecFromLibrary(
|
||||||
toolLibrary,
|
toolLibrary,
|
||||||
commandName,
|
commandName,
|
||||||
commandArguments,
|
commandArguments,
|
||||||
allowedExtensions,
|
allowedExtensions,
|
||||||
normalizedNugetPackagesRoot,
|
lockFile,
|
||||||
s_commandResolutionStrategy,
|
s_commandResolutionStrategy,
|
||||||
depsFilePath,
|
depsFilePath,
|
||||||
runtimeConfigPath);
|
runtimeConfigPath);
|
||||||
|
|
|
@ -134,12 +134,35 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
ProjectToolsCommandResolverName,
|
ProjectToolsCommandResolverName,
|
||||||
string.Join(Environment.NewLine, possiblePackageRoots.Select((p) => $"- {p}"))));
|
string.Join(Environment.NewLine, possiblePackageRoots.Select((p) => $"- {p}"))));
|
||||||
|
|
||||||
var toolPackageFramework = project.DotnetCliToolTargetFramework;
|
List<NuGetFramework> toolFrameworksToCheck = new List<NuGetFramework>();
|
||||||
|
toolFrameworksToCheck.Add(project.DotnetCliToolTargetFramework);
|
||||||
|
|
||||||
var toolLockFile = GetToolLockFile(
|
// NuGet restore in Visual Studio may restore for netcoreapp1.0. So if that happens, fall back to
|
||||||
toolLibraryRange,
|
// looking for a netcoreapp1.0 or netcoreapp1.1 tool restore.
|
||||||
toolPackageFramework,
|
if (project.DotnetCliToolTargetFramework.Framework == FrameworkConstants.FrameworkIdentifiers.NetCoreApp &&
|
||||||
possiblePackageRoots);
|
project.DotnetCliToolTargetFramework.Version >= new Version(2, 0, 0))
|
||||||
|
{
|
||||||
|
toolFrameworksToCheck.Add(NuGetFramework.Parse("netcoreapp1.1"));
|
||||||
|
toolFrameworksToCheck.Add(NuGetFramework.Parse("netcoreapp1.0"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LockFile toolLockFile = null;
|
||||||
|
NuGetFramework toolTargetFramework = null; ;
|
||||||
|
|
||||||
|
foreach (var toolFramework in toolFrameworksToCheck)
|
||||||
|
{
|
||||||
|
toolLockFile = GetToolLockFile(
|
||||||
|
toolLibraryRange,
|
||||||
|
toolFramework,
|
||||||
|
possiblePackageRoots);
|
||||||
|
|
||||||
|
if (toolLockFile != null)
|
||||||
|
{
|
||||||
|
toolTargetFramework = toolFramework;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (toolLockFile == null)
|
if (toolLockFile == null)
|
||||||
{
|
{
|
||||||
|
@ -152,7 +175,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
toolLockFile.Path));
|
toolLockFile.Path));
|
||||||
|
|
||||||
var toolLibrary = toolLockFile.Targets
|
var toolLibrary = toolLockFile.Targets
|
||||||
.FirstOrDefault(t => toolPackageFramework == t.TargetFramework)
|
.FirstOrDefault(t => toolTargetFramework == t.TargetFramework)
|
||||||
?.Libraries.FirstOrDefault(
|
?.Libraries.FirstOrDefault(
|
||||||
l => StringComparer.OrdinalIgnoreCase.Equals(l.Name, toolLibraryRange.Name));
|
l => StringComparer.OrdinalIgnoreCase.Equals(l.Name, toolLibraryRange.Name));
|
||||||
if (toolLibrary == null)
|
if (toolLibrary == null)
|
||||||
|
@ -168,12 +191,10 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
|
|
||||||
var depsFilePath = GetToolDepsFilePath(
|
var depsFilePath = GetToolDepsFilePath(
|
||||||
toolLibraryRange,
|
toolLibraryRange,
|
||||||
toolPackageFramework,
|
toolTargetFramework,
|
||||||
toolLockFile,
|
toolLockFile,
|
||||||
depsFileRoot);
|
depsFileRoot,
|
||||||
|
project.ToolDepsJsonGeneratorProject);
|
||||||
var packageFolders = toolLockFile.PackageFolders.Select(p =>
|
|
||||||
PathUtility.EnsureNoTrailingDirectorySeparator(p.Path));
|
|
||||||
|
|
||||||
Reporter.Verbose.WriteLine(string.Format(
|
Reporter.Verbose.WriteLine(string.Format(
|
||||||
LocalizableStrings.AttemptingToCreateCommandSpec,
|
LocalizableStrings.AttemptingToCreateCommandSpec,
|
||||||
|
@ -184,7 +205,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
commandName,
|
commandName,
|
||||||
args,
|
args,
|
||||||
_allowedCommandExtensions,
|
_allowedCommandExtensions,
|
||||||
packageFolders,
|
toolLockFile,
|
||||||
s_commandResolutionStrategy,
|
s_commandResolutionStrategy,
|
||||||
depsFilePath,
|
depsFilePath,
|
||||||
null);
|
null);
|
||||||
|
@ -281,7 +302,8 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
SingleProjectInfo toolLibrary,
|
SingleProjectInfo toolLibrary,
|
||||||
NuGetFramework framework,
|
NuGetFramework framework,
|
||||||
LockFile toolLockFile,
|
LockFile toolLockFile,
|
||||||
string depsPathRoot)
|
string depsPathRoot,
|
||||||
|
string toolDepsJsonGeneratorProject)
|
||||||
{
|
{
|
||||||
var depsJsonPath = Path.Combine(
|
var depsJsonPath = Path.Combine(
|
||||||
depsPathRoot,
|
depsPathRoot,
|
||||||
|
@ -292,7 +314,7 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
ProjectToolsCommandResolverName,
|
ProjectToolsCommandResolverName,
|
||||||
depsJsonPath));
|
depsJsonPath));
|
||||||
|
|
||||||
EnsureToolJsonDepsFileExists(toolLockFile, framework, depsJsonPath, toolLibrary);
|
EnsureToolJsonDepsFileExists(toolLockFile, framework, depsJsonPath, toolLibrary, toolDepsJsonGeneratorProject);
|
||||||
|
|
||||||
return depsJsonPath;
|
return depsJsonPath;
|
||||||
}
|
}
|
||||||
|
@ -301,11 +323,12 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
LockFile toolLockFile,
|
LockFile toolLockFile,
|
||||||
NuGetFramework framework,
|
NuGetFramework framework,
|
||||||
string depsPath,
|
string depsPath,
|
||||||
SingleProjectInfo toolLibrary)
|
SingleProjectInfo toolLibrary,
|
||||||
|
string toolDepsJsonGeneratorProject)
|
||||||
{
|
{
|
||||||
if (!File.Exists(depsPath))
|
if (!File.Exists(depsPath))
|
||||||
{
|
{
|
||||||
GenerateDepsJsonFile(toolLockFile, framework, depsPath, toolLibrary);
|
GenerateDepsJsonFile(toolLockFile, framework, depsPath, toolLibrary, toolDepsJsonGeneratorProject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -313,21 +336,80 @@ namespace Microsoft.DotNet.Cli.Utils
|
||||||
LockFile toolLockFile,
|
LockFile toolLockFile,
|
||||||
NuGetFramework framework,
|
NuGetFramework framework,
|
||||||
string depsPath,
|
string depsPath,
|
||||||
SingleProjectInfo toolLibrary)
|
SingleProjectInfo toolLibrary,
|
||||||
|
string toolDepsJsonGeneratorProject)
|
||||||
{
|
{
|
||||||
|
if (string.IsNullOrEmpty(toolDepsJsonGeneratorProject) ||
|
||||||
|
!File.Exists(toolDepsJsonGeneratorProject))
|
||||||
|
{
|
||||||
|
throw new GracefulException(LocalizableStrings.DepsJsonGeneratorProjectNotSet);
|
||||||
|
}
|
||||||
|
|
||||||
Reporter.Verbose.WriteLine(string.Format(
|
Reporter.Verbose.WriteLine(string.Format(
|
||||||
LocalizableStrings.GeneratingDepsJson,
|
LocalizableStrings.GeneratingDepsJson,
|
||||||
depsPath));
|
depsPath));
|
||||||
|
|
||||||
var dependencyContext = new DepsJsonBuilder()
|
|
||||||
.Build(toolLibrary, null, toolLockFile, framework, null);
|
|
||||||
|
|
||||||
var tempDepsFile = Path.GetTempFileName();
|
var tempDepsFile = Path.GetTempFileName();
|
||||||
using (var fileStream = File.Open(tempDepsFile, FileMode.Open, FileAccess.Write))
|
|
||||||
{
|
|
||||||
var dependencyContextWriter = new DependencyContextWriter();
|
|
||||||
|
|
||||||
dependencyContextWriter.Write(dependencyContext, fileStream);
|
var args = new List<string>();
|
||||||
|
|
||||||
|
args.Add(toolDepsJsonGeneratorProject);
|
||||||
|
args.Add($"/p:ProjectAssetsFile=\"{toolLockFile.Path}\"");
|
||||||
|
args.Add($"/p:ToolName={toolLibrary.Name}");
|
||||||
|
args.Add($"/p:ProjectDepsFilePath={tempDepsFile}");
|
||||||
|
|
||||||
|
var toolTargetFramework = toolLockFile.Targets.First().TargetFramework.GetShortFolderName();
|
||||||
|
args.Add($"/p:TargetFramework={toolTargetFramework}");
|
||||||
|
|
||||||
|
|
||||||
|
// Look for the .props file in the Microsoft.NETCore.App package, until NuGet
|
||||||
|
// generates .props and .targets files for tool restores (https://github.com/NuGet/Home/issues/5037)
|
||||||
|
var platformLibrary = toolLockFile.Targets
|
||||||
|
.FirstOrDefault(t => framework == t.TargetFramework)
|
||||||
|
?.GetPlatformLibrary();
|
||||||
|
|
||||||
|
if (platformLibrary != null)
|
||||||
|
{
|
||||||
|
string buildRelativePath = platformLibrary.Build.FirstOrDefault()?.Path;
|
||||||
|
|
||||||
|
var platformLibraryPath = toolLockFile.GetPackageDirectory(platformLibrary);
|
||||||
|
|
||||||
|
if (platformLibraryPath != null && buildRelativePath != null)
|
||||||
|
{
|
||||||
|
// Get rid of "_._" filename
|
||||||
|
buildRelativePath = Path.GetDirectoryName(buildRelativePath);
|
||||||
|
|
||||||
|
string platformLibraryBuildFolderPath = Path.Combine(platformLibraryPath, buildRelativePath);
|
||||||
|
var platformLibraryPropsFile = Directory.GetFiles(platformLibraryBuildFolderPath, "*.props").FirstOrDefault();
|
||||||
|
|
||||||
|
if (platformLibraryPropsFile != null)
|
||||||
|
{
|
||||||
|
args.Add($"/p:AdditionalImport={platformLibraryPropsFile}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Delete temporary file created by Path.GetTempFileName(), otherwise the GenerateBuildDependencyFile target
|
||||||
|
// will think the deps file is up-to-date and skip executing
|
||||||
|
File.Delete(tempDepsFile);
|
||||||
|
|
||||||
|
var msBuildExePath = _environment.GetEnvironmentVariable(Constants.MSBUILD_EXE_PATH);
|
||||||
|
|
||||||
|
msBuildExePath = string.IsNullOrEmpty(msBuildExePath) ?
|
||||||
|
Path.Combine(AppContext.BaseDirectory, "MSBuild.dll") :
|
||||||
|
msBuildExePath;
|
||||||
|
|
||||||
|
var result = new MSBuildForwardingAppWithoutLogging(args, msBuildExePath)
|
||||||
|
.GetProcessStartInfo()
|
||||||
|
.ExecuteAndCaptureOutput(out string stdOut, out string stdErr);
|
||||||
|
|
||||||
|
if (result != 0)
|
||||||
|
{
|
||||||
|
Reporter.Verbose.WriteLine(string.Format(
|
||||||
|
LocalizableStrings.UnableToGenerateDepsJson,
|
||||||
|
stdOut + Environment.NewLine + stdErr));
|
||||||
|
|
||||||
|
throw new GracefulException(string.Format(LocalizableStrings.UnableToGenerateDepsJson, toolDepsJsonGeneratorProject));
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using Microsoft.DotNet.Tools.Common;
|
||||||
|
using NuGet.Packaging;
|
||||||
|
using NuGet.ProjectModel;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.Cli.Utils
|
||||||
|
{
|
||||||
|
static class LockFileExtensions
|
||||||
|
{
|
||||||
|
public static string GetPackageDirectory(this LockFile lockFile, LockFileTargetLibrary library)
|
||||||
|
{
|
||||||
|
var packageFolders = lockFile.GetNormalizedPackageFolders();
|
||||||
|
|
||||||
|
var packageFoldersCount = packageFolders.Count();
|
||||||
|
var userPackageFolder = packageFoldersCount == 1 ? string.Empty : packageFolders.First();
|
||||||
|
var fallbackPackageFolders = packageFoldersCount > 1 ? packageFolders.Skip(1) : packageFolders;
|
||||||
|
|
||||||
|
var packageDirectory = new FallbackPackagePathResolver(userPackageFolder, fallbackPackageFolders)
|
||||||
|
.GetPackageDirectory(library.Name, library.Version);
|
||||||
|
|
||||||
|
return packageDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<string> GetNormalizedPackageFolders(this LockFile lockFile)
|
||||||
|
{
|
||||||
|
return lockFile.PackageFolders.Select(p =>
|
||||||
|
PathUtility.EnsureNoTrailingDirectorySeparator(p.Path));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue