Merge branch 'master' into master
This commit is contained in:
commit
adfc2037db
206 changed files with 5449 additions and 2647 deletions
|
@ -1,6 +1,6 @@
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.27004.2008
|
||||
VisualStudioVersion = 15.0.27130.2020
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED2FE3E2-F7E7-4389-8231-B65123F2076F}"
|
||||
EndProject
|
||||
|
@ -232,6 +232,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ShellShim.
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.ToolPackage.Tests", "test\Microsoft.DotNet.ToolPackage.Tests\Microsoft.DotNet.ToolPackage.Tests.csproj", "{91BFE800-1624-4A58-A1CE-339705A8FFD0}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Tools.Tests.ComponentMocks", "test\Microsoft.DotNet.Tools.Tests.ComponentMocks\Microsoft.DotNet.Tools.Tests.ComponentMocks.csproj", "{E442F4C1-08DB-470F-B9A6-197444CD0295}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "tool_launcher", "src\tool_launcher\tool_launcher.csproj", "{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "dotnet-install-tool.Tests", "test\dotnet-install-tool.Tests\dotnet-install-tool.Tests.csproj", "{8FE9D802-57F3-493B-9E14-72DF905E3838}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -1640,6 +1646,78 @@ Global
|
|||
{91BFE800-1624-4A58-A1CE-339705A8FFD0}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{91BFE800-1624-4A58-A1CE-339705A8FFD0}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{91BFE800-1624-4A58-A1CE-339705A8FFD0}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.MinSizeRel|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.MinSizeRel|Any CPU.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.MinSizeRel|x64.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.MinSizeRel|x64.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.MinSizeRel|x86.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.MinSizeRel|x86.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Release|x64.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.Release|x86.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x64.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.Release|x86.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|Any CPU.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x64.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x64.Build.0 = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.ActiveCfg = Release|Any CPU
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295}.RelWithDebInfo|x86.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x64.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.MinSizeRel|x86.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x64.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.Release|x86.Build.0 = Release|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x64.Build.0 = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.ActiveCfg = Debug|Any CPU
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838}.RelWithDebInfo|x86.Build.0 = Debug|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1713,6 +1791,9 @@ Global
|
|||
{E7C72EF2-8480-48B4-AAE8-A596F1A6048E} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
{E84C08C9-70D7-48B0-9507-ADB8B9A2694C} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
{91BFE800-1624-4A58-A1CE-339705A8FFD0} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
{EDF19BE6-F20F-4AD0-8E3B-E837030726A5} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F}
|
||||
{E442F4C1-08DB-470F-B9A6-197444CD0295} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
{8FE9D802-57F3-493B-9E14-72DF905E3838} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {B526D2CE-EE2D-4AD4-93EF-1867D90FF1F5}
|
||||
|
|
|
@ -203,3 +203,4 @@ License
|
|||
-------
|
||||
|
||||
By downloading the .zip you are agreeing to the terms in the project [EULA](https://aka.ms/dotnet-core-eula).
|
||||
|
||||
|
|
|
@ -10,6 +10,14 @@ namespace ConsoleApplication
|
|||
public static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("Hello World!");
|
||||
|
||||
if (args.Length > 0)
|
||||
{
|
||||
for (int i = 0; i < args.Length; i++)
|
||||
{
|
||||
Console.WriteLine($"{i} = {args[i]}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Product>Sdk</Product>
|
||||
<IsOrchestratedPublish Condition="'$(PB_PublishBlobFeedUrl)' != ''">True</IsOrchestratedPublish>
|
||||
<IsNotOrchestratedPublish>true</IsNotOrchestratedPublish>
|
||||
<IsNotOrchestratedPublish Condition="'$(PB_PublishBlobFeedUrl)' != ''">false</IsNotOrchestratedPublish>
|
||||
<BlobStoragePartialRelativePath>$(Product)</BlobStoragePartialRelativePath>
|
||||
|
||||
<BlobStoragePartialRelativePath Condition="'$(IsNotOrchestratedPublish)' == 'false'">assets/$(Product)</BlobStoragePartialRelativePath>
|
||||
|
||||
<!-- Values related to the download of assets from blob storage -->
|
||||
<DefaultCoreSetupBlobRootUrl>https://dotnetcli.azureedge.net/dotnet/</DefaultCoreSetupBlobRootUrl>
|
||||
<CoreSetupBlobRootUrl>$(PB_AssetRootUrl)</CoreSetupBlobRootUrl>
|
||||
|
@ -19,6 +21,8 @@
|
|||
<ArtifactContainerName Condition="'$(ArtifactContainerName)' == ''">dotnet</ArtifactContainerName>
|
||||
<ArtifactCloudDropAccessToken>$(PB_PublishBlobFeedKey)</ArtifactCloudDropAccessToken>
|
||||
<ArtifactCloudDropAccessToken Condition="'$(ArtifactCloudDropAccessToken)' == ''">$(ARTIFACT_STORAGE_KEY)</ArtifactCloudDropAccessToken>
|
||||
<ArtifactCloudDropURL>$(PB_PublishBlobFeedUrl)</ArtifactCloudDropURL>
|
||||
<ArtifactCloudDropURL Condition="'$(ArtifactCloudDropURL)' == ''">https://$(ArtifactCloudDropAccountName).blob.core.windows.net/$(ArtifactContainerName)/index.json</ArtifactCloudDropURL>
|
||||
|
||||
<!-- Values related to the upload of checksums to blob storage -->
|
||||
<ChecksumCloudDropAccountName>$(CHECKSUM_STORAGE_ACCOUNT)</ChecksumCloudDropAccountName>
|
||||
|
@ -27,6 +31,8 @@
|
|||
<ChecksumContainerName Condition="'$(ChecksumContainerName)' == ''">dotnet</ChecksumContainerName>
|
||||
<ChecksumCloudDropAccessToken>$(PB_PublishBlobFeedKey)</ChecksumCloudDropAccessToken>
|
||||
<ChecksumCloudDropAccessToken Condition="'$(ChecksumCloudDropAccessToken)' == ''">$(CHECKSUM_STORAGE_KEY)</ChecksumCloudDropAccessToken>
|
||||
<ChecksumCloudDropURL>$(PB_PublishBlobFeedUrl)</ChecksumCloudDropURL>
|
||||
<ChecksumCloudDropURL Condition="'$(ChecksumCloudDropURL)' == ''">https://$(ChecksumCloudDropAccountName).blob.core.windows.net/$(ChecksumContainerName)/index.json</ChecksumCloudDropURL>
|
||||
|
||||
<!-- Values related to the upload of NuPkgs to the blob feed -->
|
||||
<BlobFeedExpectedURL>$(PB_PublishBlobFeedUrl)</BlobFeedExpectedURL>
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<SdkBrandName>Microsoft .NET Core SDK 2.2.0 - Preview</SdkBrandName>
|
||||
<BuildName>cli</BuildName>
|
||||
<SdkBrandName>Microsoft .NET Core SDK 2.1.300 - Preview</SdkBrandName>
|
||||
<MSBuildExtensionsBrandName>.NET Standard Support for Visual Studio 2015</MSBuildExtensionsBrandName>
|
||||
<SharedFrameworkBrandName>Microsoft .NET Core Runtime 2.1.0 - Preview</SharedFrameworkBrandName>
|
||||
<SharedHostBrandName>Microsoft .NET Core Host 2.1.0 - Preview</SharedHostBrandName>
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
Condition="!Exists('$(AspNetCoreSharedFxArchiveFile)')">
|
||||
<Url>$(CoreSetupRootUrl)$(AspNetCoreVersion)/$(AspNetCoreSharedFxArchiveFileName)$(CoreSetupBlobAccessTokenParam)</Url>
|
||||
<DownloadFileName>$(AspNetCoreSharedFxArchiveFile)</DownloadFileName>
|
||||
<ExtractDestination>$(SharedFrameworkPublishDirectory)</ExtractDestination>
|
||||
<ExtractDestination>$(AspNetCoreSharedFxPublishDirectory)</ExtractDestination>
|
||||
</_DownloadAndExtractItem>
|
||||
|
||||
<_DownloadAndExtractItem Include="CombinedSharedHostAndFrameworkArchive"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<ItemGroup>
|
||||
<BundledSdk Include="NuGet.Build.Tasks.Pack" Version="$(NuGetBuildTasksPackPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk" Version="$(MicrosoftNETSdkPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Web" Version="$(MicrosoftNETSdkWebPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Publish" Version="$(MicrosoftNETSdkPublishPackageVersion)" />
|
||||
<BundledSdk Include="Microsoft.NET.Sdk.Web.ProjectSystem" Version="$(MicrosoftNETSdkWebProjectSystemPackageVersion)" />
|
||||
|
|
30
build/CLI_Baseline.csv
Normal file
30
build/CLI_Baseline.csv
Normal file
|
@ -0,0 +1,30 @@
|
|||
sdk\*\microsoft.testplatform.vstestconsole.translationlayer.xml,unsigned,oss
|
||||
sdk\*\sdks\nuget.build.tasks.pack\*\nuget.build.tasks.pack.xml,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\glyphicons-halflings-regular.ttf,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\npm.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.min.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.test.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\configurestore.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\counter.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\fetchdata.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\home.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\index.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\karma.conf.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\layout.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\navmenu.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\protractor.conf.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\registerserviceworker.js,unsigned,oss
|
||||
sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\weatherforecasts.js,unsigned,oss
|
|
|
@ -1,22 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<MicrosoftAspNetCoreAllPackageVersion>2.1.0-preview1-28042</MicrosoftAspNetCoreAllPackageVersion>
|
||||
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview1-26115-03</MicrosoftNETCoreAppPackageVersion>
|
||||
<MicrosoftAspNetCoreAllPackageVersion>2.1.0-preview2-30057</MicrosoftAspNetCoreAllPackageVersion>
|
||||
<MicrosoftNETCoreAppPackageVersion>2.1.0-preview2-26131-06</MicrosoftNETCoreAppPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<MicrosoftBuildPackageVersion>15.6.0-preview-000022-1216653</MicrosoftBuildPackageVersion>
|
||||
<MicrosoftBuildPackageVersion>15.6.0-preview-000054-1286830</MicrosoftBuildPackageVersion>
|
||||
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion>
|
||||
<MicrosoftBuildRuntimePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildRuntimePackageVersion>
|
||||
<MicrosoftBuildLocalizationPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildLocalizationPackageVersion>
|
||||
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
|
||||
<MicrosoftFSharpCompilerPackageVersion>4.2.0-rtm-171122-0</MicrosoftFSharpCompilerPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpPackageVersion>2.7.0-beta3-62419-03</MicrosoftCodeAnalysisCSharpPackageVersion>
|
||||
<MicrosoftFSharpCompilerPackageVersion>10.1.2-rtm-180131-0</MicrosoftFSharpCompilerPackageVersion>
|
||||
<MicrosoftCodeAnalysisCSharpPackageVersion>2.8.0-beta1-62608-01</MicrosoftCodeAnalysisCSharpPackageVersion>
|
||||
<MicrosoftNETCoreCompilersPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNETCoreCompilersPackageVersion>
|
||||
<MicrosoftCodeAnalysisBuildTasksPackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftCodeAnalysisBuildTasksPackageVersion>
|
||||
<MicrosoftNetCompilersNetcorePackageVersion>$(MicrosoftCodeAnalysisCSharpPackageVersion)</MicrosoftNetCompilersNetcorePackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>2.1.0-preview1-62414-02</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>2.1.300-preview2-62607-04</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
|
||||
<MicrosoftNETSdkWebPackageVersion>2.0.0-rel-20171110-671</MicrosoftNETSdkWebPackageVersion>
|
||||
<MicrosoftNETSdkRazorPackageVersion>2.1.0-preview2-30028</MicrosoftNETSdkRazorPackageVersion>
|
||||
<MicrosoftNETSdkWebPackageVersion>2.1.0-release21-20180126-1326543</MicrosoftNETSdkWebPackageVersion>
|
||||
<MicrosoftNETSdkPublishPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkPublishPackageVersion>
|
||||
<MicrosoftNETSdkWebProjectSystemPackageVersion>$(MicrosoftNETSdkWebPackageVersion)</MicrosoftNETSdkWebProjectSystemPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>1.0.1-beta3-20180104-1263555</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
|
@ -27,14 +28,14 @@
|
|||
<MicrosoftTemplateEngineCliLocalizationPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineCliLocalizationPackageVersion>
|
||||
<MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineOrchestratorRunnableProjectsPackageVersion>
|
||||
<MicrosoftTemplateEngineUtilsPackageVersion>$(MicrosoftTemplateEngineCliPackageVersion)</MicrosoftTemplateEngineUtilsPackageVersion>
|
||||
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-preview1-26115-03</MicrosoftDotNetPlatformAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-preview1-26115-03</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftDotNetPlatformAbstractionsPackageVersion>2.1.0-preview2-26131-06</MicrosoftDotNetPlatformAbstractionsPackageVersion>
|
||||
<MicrosoftExtensionsDependencyModelPackageVersion>2.1.0-preview2-26131-06</MicrosoftExtensionsDependencyModelPackageVersion>
|
||||
<MicrosoftDotNetCliCommandLinePackageVersion>0.1.1-alpha-174</MicrosoftDotNetCliCommandLinePackageVersion>
|
||||
<MicrosoftDotNetProjectJsonMigrationPackageVersion>1.2.1-alpha-002133</MicrosoftDotNetProjectJsonMigrationPackageVersion>
|
||||
<MicrosoftDotNetToolsMigrateCommandPackageVersion>$(MicrosoftDotNetProjectJsonMigrationPackageVersion)</MicrosoftDotNetToolsMigrateCommandPackageVersion>
|
||||
<MicrosoftDotNetArchivePackageVersion>0.2.0-beta-000059</MicrosoftDotNetArchivePackageVersion>
|
||||
<MicrosoftDotNetArchivePackageVersion>0.2.0-beta-62606-02</MicrosoftDotNetArchivePackageVersion>
|
||||
<MicrosoftDiaSymReaderNativePackageVersion>1.6.0-beta2-25304</MicrosoftDiaSymReaderNativePackageVersion>
|
||||
<NuGetBuildTasksPackageVersion>4.6.0-rtm-4782</NuGetBuildTasksPackageVersion>
|
||||
<NuGetBuildTasksPackageVersion>4.7.0-preview1-4846</NuGetBuildTasksPackageVersion>
|
||||
<NuGetBuildTasksPackPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetBuildTasksPackPackageVersion>
|
||||
<NuGetCommonPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetCommonPackageVersion>
|
||||
<NuGetCommandLineXPlatPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetCommandLineXPlatPackageVersion>
|
||||
|
@ -43,21 +44,19 @@
|
|||
<NuGetPackagingPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetPackagingPackageVersion>
|
||||
<NuGetProjectModelPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetProjectModelPackageVersion>
|
||||
<NuGetVersioningPackageVersion>$(NuGetBuildTasksPackageVersion)</NuGetVersioningPackageVersion>
|
||||
<MicrosoftNETTestSdkPackageVersion>15.6.0-preview-20171211-02</MicrosoftNETTestSdkPackageVersion>
|
||||
<MicrosoftNETTestSdkPackageVersion>15.6.0-preview-20180109-01</MicrosoftNETTestSdkPackageVersion>
|
||||
<MicrosoftTestPlatformCLIPackageVersion>$(MicrosoftNETTestSdkPackageVersion)</MicrosoftTestPlatformCLIPackageVersion>
|
||||
<MicrosoftTestPlatformBuildPackageVersion>$(MicrosoftNETTestSdkPackageVersion)</MicrosoftTestPlatformBuildPackageVersion>
|
||||
<XliffTasksPackageVersion>0.2.0-beta-000042</XliffTasksPackageVersion>
|
||||
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
|
||||
<CLI_Deps_Satellites_Build>pre-20171122-1</CLI_Deps_Satellites_Build>
|
||||
<CliDepsSatellitesRoslynPackageVersion>2.6.0-$(CLI_Deps_Satellites_Build)</CliDepsSatellitesRoslynPackageVersion>
|
||||
<CliDepsSatellitesFSharpPackageVersion>4.4.1-$(CLI_Deps_Satellites_Build)</CliDepsSatellitesFSharpPackageVersion>
|
||||
<CliDepsSatellitesRoslynPackageVersion>2.6.0-pre-20171122-1</CliDepsSatellitesRoslynPackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- NOTE: The property group above is in alignment with orchestrated build version naming conventions. -->
|
||||
<Import Condition=" Exists('$(OrchestratedPackageVersionsProps)') " Project="$(OrchestratedPackageVersionsProps)" />
|
||||
|
||||
<PropertyGroup>
|
||||
<CLI_NETStandardLibraryNETFrameworkVersion>2.0.1-servicing-25908-02</CLI_NETStandardLibraryNETFrameworkVersion>
|
||||
<CLI_NETStandardLibraryNETFrameworkVersion>2.0.1-servicing-26011-01</CLI_NETStandardLibraryNETFrameworkVersion>
|
||||
|
||||
<SharedHostVersion>$(MicrosoftNETCoreAppPackageVersion)</SharedHostVersion>
|
||||
<HostFxrVersion>$(MicrosoftNETCoreAppPackageVersion)</HostFxrVersion>
|
||||
|
@ -66,9 +65,9 @@
|
|||
|
||||
<!-- infrastructure and test only dependencies -->
|
||||
<PropertyGroup>
|
||||
<VersionToolsVersion>1.0.27-prerelease-01723-01</VersionToolsVersion>
|
||||
<BuildTasksFeedToolVersion>2.1.0-prerelease-02430-04</BuildTasksFeedToolVersion>
|
||||
<VersionToolsVersion>$(BuildTasksFeedToolVersion)</VersionToolsVersion>
|
||||
<DotnetDebToolVersion>2.0.0-preview2-25331-01</DotnetDebToolVersion>
|
||||
<BuildTasksFeedToolVersion>2.1.0-prerelease-02312-02</BuildTasksFeedToolVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -7,6 +7,5 @@
|
|||
<BuildInfoProps>$(GeneratedPropsDir)/BuildInfo.props</BuildInfoProps>
|
||||
<OrchestratedPackageVersionsProps>$(GeneratedPropsDir)/OrchestratedPackageVersionsProps.props</OrchestratedPackageVersionsProps>
|
||||
<GeneratedNuGetConfig>$(RepoRoot)/NuGet.Config</GeneratedNuGetConfig>
|
||||
|
||||
</PropertyGroup>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
</MSBuild>
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateBundledVersionsProps">
|
||||
<Target Name="GenerateBundledVersionsProps" DependsOnTargets="RunResolvePackageDependencies">
|
||||
<PropertyGroup>
|
||||
<BundledVersionsPropsFileName>Microsoft.NETCoreSdk.BundledVersions.props</BundledVersionsPropsFileName>
|
||||
</PropertyGroup>
|
||||
|
@ -97,20 +97,25 @@
|
|||
of our build against Microsoft.NETCore.App to find the correct NETStandard.Library version
|
||||
-->
|
||||
<ItemGroup>
|
||||
<_NETStandardLibraryVersions Include="@(PackageDefinitions->'%(Version)')"
|
||||
<_NETStandardLibraryPackageVersions Include="@(PackageDefinitions->'%(Version)')"
|
||||
Condition="%(PackageDefinitions.Name) == 'NetStandard.Library'" />
|
||||
<_NETCorePlatformsPackageVersions Include="@(PackageDefinitions->'%(Version)')"
|
||||
Condition="%(PackageDefinitions.Name) == 'Microsoft.NETCore.Platforms'" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="@(_NETStandardLibraryVersions->Distinct()->Count()) != 1"
|
||||
<Error Condition="@(_NETStandardLibraryPackageVersions->Distinct()->Count()) != 1"
|
||||
Text="Failed to determine the NETStandard.Library version pulled in Microsoft.NETCore.App" />
|
||||
<Error Condition="@(_NETCorePlatformsPackageVersions->Distinct()->Count()) != 1"
|
||||
Text="Failed to determine the Microsoft.NETCore.Platforms version pulled in Microsoft.NETCore.App" />
|
||||
|
||||
<PropertyGroup>
|
||||
<_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppPackageVersion)</_NETCoreAppPackageVersion>
|
||||
<_NETStandardPackageVersion>@(_NETStandardLibraryVersions->Distinct())</_NETStandardPackageVersion>
|
||||
<_NETStandardLibraryPackageVersion>@(_NETStandardLibraryPackageVersions->Distinct())</_NETStandardLibraryPackageVersion>
|
||||
<_NETCorePlatformsPackageVersion>@(_NETCorePlatformsPackageVersions->Distinct())</_NETCorePlatformsPackageVersion>
|
||||
|
||||
<!-- Use only major and minor in target framework version -->
|
||||
<_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1])</_NETCoreAppTargetFrameworkVersion>
|
||||
<_NETStandardTargetFrameworkVersion>$(_NETStandardPackageVersion.Split('.')[0]).$(_NETStandardPackageVersion.Split('.')[1])</_NETStandardTargetFrameworkVersion>
|
||||
<_NETStandardTargetFrameworkVersion>$(_NETStandardLibraryPackageVersion.Split('.')[0]).$(_NETStandardLibraryPackageVersion.Split('.')[1])</_NETStandardTargetFrameworkVersion>
|
||||
|
||||
<BundledVersionsPropsContent>
|
||||
<![CDATA[
|
||||
|
@ -130,7 +135,8 @@ Copyright (c) .NET Foundation. All rights reserved.
|
|||
<BundledNETCoreAppTargetFrameworkVersion>$(_NETCoreAppTargetFrameworkVersion)</BundledNETCoreAppTargetFrameworkVersion>
|
||||
<BundledNETCoreAppPackageVersion>$(_NETCoreAppPackageVersion)</BundledNETCoreAppPackageVersion>
|
||||
<BundledNETStandardTargetFrameworkVersion>$(_NETStandardTargetFrameworkVersion)</BundledNETStandardTargetFrameworkVersion>
|
||||
<BundledNETStandardPackageVersion>$(_NETStandardPackageVersion)</BundledNETStandardPackageVersion>
|
||||
<BundledNETStandardPackageVersion>$(_NETStandardLibraryPackageVersion)</BundledNETStandardPackageVersion>
|
||||
<BundledNETCorePlatformsPackageVersion>$(_NETCorePlatformsPackageVersion)</BundledNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
]]>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<ItemGroup>
|
||||
<NugetConfigPrivateFeeds Include="$(ExternalRestoreSources.Split(';'))" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<PropertyGroup>
|
||||
<NugetConfigHeader>
|
||||
<![CDATA[
|
||||
|
@ -28,9 +28,8 @@
|
|||
<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="vstest" value="https://dotnet.myget.org/F/vstest/api/v3/index.json" />
|
||||
<add key="web-api" value="https://dotnet.myget.org/F/dotnet-web/api/v3/index.json" />
|
||||
<add key="symreader-native" value="https://dotnet.myget.org/F/symreader-native/api/v3/index.json" />
|
||||
<add key="nuget-build" value="https://dotnet.myget.org/F/nuget-build/api/v3/index.json" />
|
||||
<add key="dotnet-corefxlab" value="https://dotnet.myget.org/F/dotnet-corefxlab/api/v3/index.json" />
|
||||
<add key="container-tools" value="https://www.myget.org/F/container-tools-for-visual-studio/api/v3/index.json" />
|
||||
]]>
|
||||
</NugetConfigCLIFeeds>
|
||||
|
@ -41,13 +40,13 @@
|
|||
</configuration>
|
||||
]]>
|
||||
</NugetConfigSuffix>
|
||||
|
||||
|
||||
</PropertyGroup>
|
||||
|
||||
<WriteLinesToFile File="$(GeneratedNuGetConfig)"
|
||||
Lines="$(NugetConfigHeader)"
|
||||
Overwrite="true" />
|
||||
|
||||
|
||||
<WriteLinesToFile Condition="'$(ExternalRestoreSources)' != '' and '$(DotNetBuildOffline)' != 'true'"
|
||||
File="$(GeneratedNuGetConfig)"
|
||||
Lines="<add key="PrivateBlobFeed" value="%(NugetConfigPrivateFeeds.Identity)" />"
|
||||
|
|
|
@ -20,15 +20,14 @@
|
|||
<IntermediateDirectory>$(BaseOutputDirectory)/intermediate</IntermediateDirectory>
|
||||
<PackagesDirectory>$(BaseOutputDirectory)/packages</PackagesDirectory>
|
||||
<SharedFrameworkPublishDirectory>$(IntermediateDirectory)/sharedFrameworkPublish</SharedFrameworkPublishDirectory>
|
||||
<!-- The 'AspNetRuntimePackageStorePublishDirectory' needs to be very short due to path length constraints on Win8.1 -->
|
||||
<AspNetRuntimePackageStorePublishDirectory>$(BaseOutputDirectory)/AspRT</AspNetRuntimePackageStorePublishDirectory>
|
||||
<AspNetCoreSharedFxPublishDirectory>$(IntermediateDirectory)/aspnetSharedFxPublish</AspNetCoreSharedFxPublishDirectory>
|
||||
<BackwardsCompatibleSharedFrameworksPublishDirectory>$(IntermediateDirectory)/backwardsCompatibleSharedFrameworksPublish</BackwardsCompatibleSharedFrameworksPublishDirectory>
|
||||
<TestOutputDir>$(BaseOutputDirectory)/test/</TestOutputDir>
|
||||
<DotnetInOutputDirectory>$(OutputDirectory)/dotnet$(ExeExtension)</DotnetInOutputDirectory>
|
||||
<GeneratedMSBuildExtensionsDirectory>$(IntermediateDirectory)/GeneratedMSBuildExtensions</GeneratedMSBuildExtensionsDirectory>
|
||||
<MSBuildExtensionsLayoutDirectory>$(IntermediateDirectory)/MSBuildExtensionsLayout</MSBuildExtensionsLayoutDirectory>
|
||||
<SdkResolverOutputDirectory>$(MSBuildExtensionsLayoutDirectory)/MSBuildSdkResolver</SdkResolverOutputDirectory>
|
||||
|
||||
|
||||
<NextStagePropsPath>$(BaseOutputDirectory)/PreviousStage.props</NextStagePropsPath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Condition=" '$(GeneratePropsFile)' != 'true' " Project="$(NuGetPackagesDir)/microsoft.dotnet.build.tasks.feed/$(BuildTasksFeedToolVersion)/build/Microsoft.DotNet.Build.Tasks.Feed.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/FinishBuild.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/PublishContent.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/PublishNupkgToBlobFeed.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/Badge.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/AzureInfo.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/Checksum.targets" />
|
||||
<Import Project="$(MSBuildThisFileDirectory)/publish/RuntimeCoherence.targets" />
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
|||
Condition=" '$(PUBLISH_TO_AZURE_BLOB)' == 'true' "
|
||||
DependsOnTargets="Init;
|
||||
SetBadgeProps;
|
||||
SetAzureProps;
|
||||
Package;
|
||||
EvaluateRuntimeCoherence;
|
||||
PublishArtifacts;
|
||||
|
@ -23,7 +22,6 @@
|
|||
Condition=" '$(PUBLISH_TO_AZURE_BLOB)' == 'true' "
|
||||
DependsOnTargets="Init;
|
||||
SetBadgeProps;
|
||||
SetAzureProps;
|
||||
EvaluateRuntimeCoherence;
|
||||
PublishArtifacts;
|
||||
FinishBuild" />
|
||||
|
@ -39,8 +37,7 @@
|
|||
PublishNupkgToBlobFeed;
|
||||
PublishCliVersionBadge" />
|
||||
|
||||
<Target Name="GatherItemsForPattern"
|
||||
DependsOnTargets="SetAzureProps">
|
||||
<Target Name="GatherItemsForPattern">
|
||||
<ItemGroup>
|
||||
<ForPublishing Include="@(GeneratedInstallers)"
|
||||
Condition=" '$(PublishNativeInstallers)' == 'true' "/>
|
||||
|
@ -57,12 +54,15 @@
|
|||
<ItemGroup>
|
||||
<ForPublishing>
|
||||
<RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(FullNugetVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
|
||||
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||
</ForPublishing>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishCliVersionBadge"
|
||||
DependsOnTargets="SetAzureProps">
|
||||
<Target Name="PublishCliVersionBadge">
|
||||
<Error Condition="'$(ArtifactCloudDropAccessToken)' == ''" Text="Missing property ArtifactCloudDropAccessToken." />
|
||||
<Error Condition="'$(ArtifactCloudDropURL)' == ''" Text="Missing property ArtifactCloudDropURL." />
|
||||
|
||||
<ItemGroup>
|
||||
<CliVersionBadgeToUpload Include="$(VersionBadge)" />
|
||||
<CliVersionBadgeToUpload Include="$(CoherentBadge)"
|
||||
|
@ -72,20 +72,22 @@
|
|||
<ItemGroup>
|
||||
<CliVersionBadgeToUpload>
|
||||
<RelativeBlobPath>$(BlobStoragePartialRelativePath)/$(FullNugetVersion)/$([System.String]::Copy('%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
|
||||
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||
</CliVersionBadgeToUpload>
|
||||
</ItemGroup>
|
||||
|
||||
<UploadToAzure
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
AccountName="$(ArtifactCloudDropAccountName)"
|
||||
ContainerName="$(ArtifactContainerName)"
|
||||
Items="@(CliVersionBadgeToUpload)"
|
||||
Overwrite="$(OverwriteOnPublish)" />
|
||||
|
||||
<SetBlobPropertiesBasedOnFileType
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
AccountName="$(ArtifactCloudDropAccountName)"
|
||||
ContainerName="$(ArtifactContainerName)"
|
||||
Items="@(CliVersionBadgeToUpload)" />
|
||||
<Message Text="Publish badges to blob feed started: $(ArtifactCloudDropURL)" />
|
||||
<PushToBlobFeed ExpectedFeedUrl="$(ArtifactCloudDropURL)"
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
ItemsToPush="@(CliVersionBadgeToUpload)"
|
||||
ManifestBranch="$(BranchName)"
|
||||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="false"
|
||||
PublishFlatContainer="true"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
<CommandToInvokeBuildScriptInDockerToPackageInSandBox>$(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --configuration $(BuildConfiguration)</CommandToInvokeBuildScriptInDockerToPackageInSandBox>
|
||||
<CommandToInvokeBuildScriptInDockerToPackageInSandBox>$(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --docker $(DockerFolder)</CommandToInvokeBuildScriptInDockerToPackageInSandBox>
|
||||
<CommandToInvokeBuildScriptInDockerToPackageInSandBox>$(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --skip-prereqs</CommandToInvokeBuildScriptInDockerToPackageInSandBox>
|
||||
<CommandToInvokeBuildScriptInDockerToPackageInSandBox>$(CommandToInvokeBuildScriptInDockerToPackageInSandBox) --generate-installers</CommandToInvokeBuildScriptInDockerToPackageInSandBox>
|
||||
<CommandToInvokeBuildScriptInDockerToPackageInSandBox>$(CommandToInvokeBuildScriptInDockerToPackageInSandBox) /t:GenerateInstallersAndCopyOutOfSandBox</CommandToInvokeBuildScriptInDockerToPackageInSandBox>
|
||||
<CommandToInvokeBuildScriptInDockerToPackageInSandBox>$(CommandToInvokeBuildScriptInDockerToPackageInSandBox) /p:RelativeSandBoxPackageOutputFolder=$(RelativeSandBoxPackageOutputFolder)</CommandToInvokeBuildScriptInDockerToPackageInSandBox>
|
||||
<CommandExitCodeFirstTime>0</CommandExitCodeFirstTime>
|
||||
<PipeStderrToStdoutToCatchFirstFailure>2>&1</PipeStderrToStdoutToCatchFirstFailure>
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
<!-- Built binaries -->
|
||||
<FilesToSign Include="$(OutputDirectory)/sdk/**/csc.exe;
|
||||
$(OutputDirectory)/sdk/**/csc.dll;
|
||||
$(OutputDirectory)/sdk/**/VBCSCompiler.dll;
|
||||
$(OutputDirectory)/sdk/**/vbc.exe;
|
||||
$(OutputDirectory)/sdk/**/vbc.dll;
|
||||
$(OutputDirectory)/sdk/**/fsc.exe;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<VersionMajor>2</VersionMajor>
|
||||
<VersionMinor>2</VersionMinor>
|
||||
<VersionPatch>0</VersionPatch>
|
||||
<ReleaseSuffix Condition=" '$(ReleaseSuffix)' == '' ">preview1</ReleaseSuffix>
|
||||
<VersionMinor>1</VersionMinor>
|
||||
<VersionPatch>300</VersionPatch>
|
||||
<ReleaseSuffix Condition=" '$(ReleaseSuffix)' == '' ">preview2</ReleaseSuffix>
|
||||
|
||||
<CliVersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)-$(ReleaseSuffix)</CliVersionPrefix>
|
||||
<SimpleVersion Condition=" '$(DropSuffix)' == '' ">$(VersionMajor).$(VersionMinor).$(VersionPatch).$(CommitCount)</SimpleVersion>
|
||||
|
|
|
@ -120,5 +120,4 @@
|
|||
<GeneratedInstallers Include="$(SdkInstallerFile)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- AcquireWix Properties -->
|
||||
<PropertyGroup>
|
||||
<WixVersion>3.10.2</WixVersion>
|
||||
<WixVersion>3.10.4</WixVersion>
|
||||
<WixDownloadUrl>https://dotnetcli.azureedge.net/build/wix/wix.$(WixVersion).zip</WixDownloadUrl>
|
||||
<WixRoot>$(IntermediateDirectory)/WixTools/$(WixVersion)</WixRoot>
|
||||
<WixDestinationPath>$(WixRoot)/WixTools.$(WixVersion).zip</WixDestinationPath>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" />
|
||||
<SdkLanguagePackInput Include="$(OutputDirectory)/sdk/**/$(SatelliteAssemblies)" />
|
||||
|
||||
<AspNetRuntimeFilesInput Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" />
|
||||
<AspNetRuntimeFilesInput Include="$(AspNetCoreSharedFxPublishDirectory)/**/*" />
|
||||
|
||||
<MSBuildExtensionsInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions/**/*" />
|
||||
<MSBuildExtensionsVerInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions-ver/**/*" />
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<Target Name="SetAzureProps"
|
||||
Condition=" '$(IsOrchestratedPublish)' == 'True' And '$(PB_PublishBlobFeedUrl)' != '' ">
|
||||
|
||||
<ParseFeedUrl FeedUrl="$(PB_PublishBlobFeedUrl)">
|
||||
<Output TaskParameter="BlobElements" ItemName="BlobElements" />
|
||||
</ParseFeedUrl>
|
||||
|
||||
<PropertyGroup>
|
||||
<ArtifactContainerName>%(BlobElements.ContainerName)</ArtifactContainerName>
|
||||
<ChecksumContainerName>%(BlobElements.ContainerName)</ChecksumContainerName>
|
||||
<ArtifactCloudDropAccountName>%(BlobElements.AccountName)</ArtifactCloudDropAccountName>
|
||||
<ChecksumCloudDropAccountName>%(BlobElements.AccountName)</ChecksumCloudDropAccountName>
|
||||
<PublishBlobFeedUrlBlobPath>%(BlobElements.BaseBlobPath)</PublishBlobFeedUrlBlobPath>
|
||||
<BlobStoragePartialRelativePath>$(PublishBlobFeedUrlBlobPath.Replace('/index.json', ''))/assets/$(Product)</BlobStoragePartialRelativePath>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
</Project>
|
|
@ -15,6 +15,7 @@
|
|||
<ArtifactsForGeneratingChecksums Include="@(ForPublishing)">
|
||||
<DestinationPath>%(ForPublishing.FullPath).sha</DestinationPath>
|
||||
<RelativeBlobPath>%(ForPublishing.RelativeBlobPath).sha</RelativeBlobPath>
|
||||
<ManifestArtifactData>ShipInstaller=dotnetclichecksums</ManifestArtifactData>
|
||||
</ArtifactsForGeneratingChecksums>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name="FinishBuild"
|
||||
Condition="'$(IsOrchestratedPublish)' != 'True'"
|
||||
Condition="'$(IsNotOrchestratedPublish)' == 'true'"
|
||||
DependsOnTargets="CheckIfAllBuildsHavePublished;
|
||||
FinalizeBuild" />
|
||||
|
||||
|
@ -14,9 +14,8 @@
|
|||
<Output TaskParameter="HaveAllBuildsPublished" PropertyName="HaveAllBuildsPublished" />
|
||||
</CheckIfAllBuildsHavePublished>
|
||||
</Target>
|
||||
|
||||
<Target Name="FinalizeBuild"
|
||||
Condition=" '$(HaveAllBuildsPublished)' == 'True' ">
|
||||
|
||||
<Target Name="FinalizeBuild" Condition=" '$(HaveAllBuildsPublished)' == 'True' ">
|
||||
<CopyBlobsToLatest AccountName="$(ArtifactCloudDropAccountName)"
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
ContainerName="$(ArtifactContainerName)"
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
<ItemGroup>
|
||||
<ForPublishing>
|
||||
<RelativeBlobPath>$([System.String]::Copy('%(RecursiveDir)%(Filename)%(Extension)').Replace('\' ,'/'))</RelativeBlobPath>
|
||||
<ManifestArtifactData>ShipInstaller=dotnetcli</ManifestArtifactData>
|
||||
</ForPublishing>
|
||||
</ItemGroup>
|
||||
<Error Condition="'@(ForPublishing)' == ''" Text="No items were found matching pattern '$(PublishPattern)'." />
|
||||
|
@ -21,40 +22,40 @@
|
|||
|
||||
<!-- publishes artifacts to blob storage in Azure -->
|
||||
<Target Name="UploadArtifactsToAzure" DependsOnTargets="GatherItemsForPattern">
|
||||
<Error Condition="'$(ArtifactContainerName)' == ''" Text="Missing property ArtifactContainerName." />
|
||||
<Error Condition="'$(ArtifactCloudDropAccountName)' == ''" Text="Missing property ArtifactCloudDropAccountName." />
|
||||
<Error Condition="'$(ArtifactCloudDropAccessToken)' == ''" Text="Missing property ArtifactCloudDropAccessToken." />
|
||||
<!-- create the container if it doesn't exist -->
|
||||
<CreateAzureContainer
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
AccountName="$(ArtifactCloudDropAccountName)"
|
||||
ContainerName="$(ArtifactContainerName)" />
|
||||
<!-- now upload the items -->
|
||||
<UploadToAzure
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
AccountName="$(ArtifactCloudDropAccountName)"
|
||||
ContainerName="$(ArtifactContainerName)"
|
||||
Items="@(ForPublishing)"
|
||||
Overwrite="$(OverwriteOnPublish)" />
|
||||
<Error Condition="'$(ArtifactCloudDropURL)' == ''" Text="Missing property ArtifactCloudDropURL." />
|
||||
|
||||
<Message Text="Publish assets to blob storage started: $(ArtifactCloudDropURL)" />
|
||||
<PushToBlobFeed ExpectedFeedUrl="$(ArtifactCloudDropURL)"
|
||||
AccountKey="$(ArtifactCloudDropAccessToken)"
|
||||
ItemsToPush="@(ForPublishing)"
|
||||
ManifestBranch="$(BranchName)"
|
||||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="$(OverwriteOnPublish)"
|
||||
PublishFlatContainer="true"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
</Target>
|
||||
|
||||
<!-- publishes checksums for the artifacts to blob storage in Azure -->
|
||||
<Target Name="UploadChecksumsToAzure" DependsOnTargets="GenerateChecksums">
|
||||
<Error Condition="'$(ChecksumContainerName)' == ''" Text="Missing property ChecksumContainerName." />
|
||||
<Error Condition="'$(ChecksumCloudDropAccountName)' == ''" Text="Missing property ChecksumCloudDropAccountName." />
|
||||
<Error Condition="'$(ChecksumCloudDropAccessToken)' == ''" Text="Missing property ChecksumCloudDropAccessToken." />
|
||||
<!-- create the container if it doesn't exist -->
|
||||
<CreateAzureContainer
|
||||
AccountKey="$(ChecksumCloudDropAccessToken)"
|
||||
AccountName="$(ChecksumCloudDropAccountName)"
|
||||
ContainerName="$(ChecksumContainerName)" />
|
||||
<!-- now upload the items -->
|
||||
<UploadToAzure
|
||||
AccountKey="$(ChecksumCloudDropAccessToken)"
|
||||
AccountName="$(ChecksumCloudDropAccountName)"
|
||||
ContainerName="$(ChecksumContainerName)"
|
||||
Items="@(ArtifactsForGeneratingChecksums->'%(DestinationPath)')"
|
||||
Overwrite="$(OverwriteOnPublish)" />
|
||||
<Error Condition="'$(ChecksumCloudDropURL)' == ''" Text="Missing property ChecksumCloudDropURL." />
|
||||
|
||||
<Message Text="Publish checksums to blob storage started: $(ChecksumCloudDropURL)" />
|
||||
<PushToBlobFeed ExpectedFeedUrl="$(ChecksumCloudDropURL)"
|
||||
AccountKey="$(ChecksumCloudDropAccessToken)"
|
||||
ItemsToPush="@(ArtifactsForGeneratingChecksums->'%(DestinationPath)')"
|
||||
ManifestBranch="$(BranchName)"
|
||||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="$(OverwriteOnPublish)"
|
||||
PublishFlatContainer="true"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
</Project>
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Condition="'$(GeneratePropsFile)' != 'true'" Project="$(NuGetPackagesDir)/microsoft.dotnet.build.tasks.feed/$(BuildTasksFeedToolVersion)/build/Microsoft.DotNet.Build.Tasks.Feed.targets" />
|
||||
|
||||
<ItemGroup>
|
||||
<NupkgsForPublishing Include="$(PackagesDirectory)/Microsoft.DotNet.Cli.Utils.*.nupkg" />
|
||||
<NupkgsForPublishing Include="$(PackagesDirectory)/Microsoft.DotNet.MSBuildSdkResolver.*.nupkg" />
|
||||
|
@ -11,10 +9,17 @@
|
|||
<Error Condition="'$(BlobFeedCloudDropAccessToken)' == ''" Text="Missing property BlobFeedCloudDropAccessToken." />
|
||||
<Error Condition="'$(BlobFeedExpectedURL)' == ''" Text="Missing property BlobFeedExpectedURL." />
|
||||
|
||||
<Message Text="Publish NuPkgs to Blob feed started" />
|
||||
<PushToBlobFeed AccountKey="$(BlobFeedCloudDropAccessToken)"
|
||||
ExpectedFeedUrl="$(BlobFeedExpectedURL)"
|
||||
ItemsToPush="@(NupkgsForPublishing)"
|
||||
Overwrite="false" />
|
||||
<Message Text="Publish NuPkgs to Blob feed started: $(BlobFeedExpectedURL)" />
|
||||
<PushToBlobFeed ExpectedFeedUrl="$(BlobFeedExpectedURL)"
|
||||
AccountKey="$(BlobFeedCloudDropAccessToken)"
|
||||
ItemsToPush="@(NupkgsForPublishing)"
|
||||
ManifestBranch="$(BranchName)"
|
||||
ManifestBuildId="$(FullNugetVersion)"
|
||||
ManifestCommit="$(CommitHash)"
|
||||
ManifestName="$(BuildName)"
|
||||
ManifestBuildData="ProductVersion=$(FullNugetVersion)"
|
||||
Overwrite="true"
|
||||
PublishFlatContainer="false"
|
||||
SkipCreateManifest="$(IsNotOrchestratedPublish)" />
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="$(DependencyPackageName)" Version="$(DependencyPackageVersion)" />
|
||||
<PackageReference Condition="'$(DependencyPackageName)' == 'Microsoft.NET.Sdk.Web'" Include="Microsoft.NET.Sdk" Version="$(MicrosoftNETSdkPackageVersion)" />
|
||||
<PackageReference Condition="'$(DependencyPackageName)' == 'Microsoft.NET.Sdk.Web'" Include="Microsoft.NET.Sdk.Razor" Version="$(MicrosoftNETSdkRazorPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
<PreTestProjectsToExclude Condition=" 'Non-test projects in test directory' != 'consider moving elsewhere' "
|
||||
Include="test/ArgumentsReflector/ArgumentsReflector.csproj;
|
||||
test/Microsoft.DotNet.Tools.Tests.Utilities/Microsoft.DotNet.Tools.Tests.Utilities.csproj;
|
||||
test/Microsoft.DotNet.Tools.Tests.ComponentMocks/Microsoft.DotNet.Tools.Tests.ComponentMocks.csproj;
|
||||
test/Msbuild.Tests.Utilities/Msbuild.Tests.Utilities.csproj;
|
||||
test/Performance/Performance.csproj;
|
||||
test/Microsoft.DotNet.TestFramework/Microsoft.DotNet.TestFramework.csproj" />
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<PackageReference Include="NETStandard.Library" Version="1.6.0" />
|
||||
<PackageReference Include="System.Diagnostics.Process" Version="4.1.0" />
|
||||
<PackageReference Include="System.Reflection.TypeExtensions" Version="4.1.0" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.1-beta-000933" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -14,16 +14,17 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NETCore.App" Version="$(MicrosoftNETCoreAppPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.NETCore.App" Version="2.1.0-preview1-26116-04" />
|
||||
<PackageReference Include="Microsoft.Build" Version="15.4.8" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.4.8" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.0.1" />
|
||||
<PackageReference Include="System.Dynamic.Runtime" Version="4.0.11" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.1-beta-24410-02" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.2" />
|
||||
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.1.1" />
|
||||
<PackageReference Include="System.Xml.XmlSerializer" Version="4.0.11" />
|
||||
<PackageReference Include="WindowsAzure.Storage" Version="7.2.1" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.0.0" />
|
||||
|
||||
<PackageReference Include="Microsoft.DotNet.VersionTools" Version="$(VersionToolsVersion)" />
|
||||
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Feed" Version="$(BuildTasksFeedToolVersion)" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="2.0.0" />
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
<PackageReference Include="NETStandard.Library" Version="1.6.0" />
|
||||
<PackageReference Include="Microsoft.CSharp" Version="4.0.1" />
|
||||
<PackageReference Include="System.Dynamic.Runtime" Version="4.0.11" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.1-beta-24410-02" />
|
||||
<PackageReference Include="System.Reflection.Metadata" Version="1.4.2" />
|
||||
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.1.1" />
|
||||
<PackageReference Include="System.Threading.Thread" Version="4.0.0" />
|
||||
<PackageReference Include="System.Xml.XmlSerializer" Version="4.0.11" />
|
||||
<PackageReference Include="WindowsAzure.Storage" Version="7.2.1" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.1-beta-000933" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="1.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -39,12 +39,15 @@ namespace Microsoft.DotNet.Scripts
|
|||
|
||||
private Lazy<string> _dotNetVersionUrl = new Lazy<string>(() => GetEnvironmentVariable("DOTNET_VERSION_URL", "https://raw.githubusercontent.com/dotnet/versions/master/build-info"));
|
||||
private Lazy<string> _coreSetupVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("CORESETUP_VERSION_FRAGMENT", GetDefaultCoreSetupVersionFragment()));
|
||||
|
||||
private Lazy<string> _roslynVersionFragment = new Lazy<string>(() => GetEnvironmentVariable("ROSLYN_VERSION_FRAGMENT"));
|
||||
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> _gitHubUpstreamBranch = new Lazy<string>(() => GetEnvironmentVariable("GITHUB_UPSTREAM_BRANCH", GetDefaultUpstreamBranch()));
|
||||
private Lazy<string[]> _gitHubPullRequestNotifications = new Lazy<string[]>(() =>
|
||||
GetEnvironmentVariable("GITHUB_PULL_REQUEST_NOTIFICATIONS", "")
|
||||
.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries));
|
||||
|
||||
private Config()
|
||||
{
|
||||
}
|
||||
|
@ -54,6 +57,8 @@ namespace Microsoft.DotNet.Scripts
|
|||
public string Password => _password.Value;
|
||||
public string DotNetVersionUrl => _dotNetVersionUrl.Value;
|
||||
public string CoreSetupVersionFragment => _coreSetupVersionFragment.Value;
|
||||
public string RoslynVersionFragment => _roslynVersionFragment.Value;
|
||||
public bool HasRoslynVersionFragment => !string.IsNullOrEmpty(RoslynVersionFragment);
|
||||
public string GitHubUpstreamOwner => _gitHubUpstreamOwner.Value;
|
||||
public string GitHubProject => _gitHubProject.Value;
|
||||
public string GitHubUpstreamBranch => _gitHubUpstreamBranch.Value;
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
using Microsoft.DotNet.VersionTools;
|
||||
using Microsoft.DotNet.VersionTools.Automation;
|
||||
using Microsoft.DotNet.VersionTools.Dependencies;
|
||||
using Microsoft.DotNet.VersionTools.Dependencies.BuildOutput;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
|
@ -27,9 +28,14 @@ namespace Microsoft.DotNet.Scripts
|
|||
|
||||
buildInfos.Add(GetBuildInfo("CoreSetup", s_config.CoreSetupVersionFragment, fetchLatestReleaseFile: false));
|
||||
|
||||
if (s_config.HasRoslynVersionFragment)
|
||||
{
|
||||
buildInfos.Add(GetBuildInfo("Roslyn", s_config.RoslynVersionFragment, fetchLatestReleaseFile: false));
|
||||
}
|
||||
|
||||
IEnumerable<IDependencyUpdater> updaters = GetUpdaters();
|
||||
var dependencyBuildInfos = buildInfos.Select(buildInfo =>
|
||||
new DependencyBuildInfo(
|
||||
new BuildDependencyInfo(
|
||||
buildInfo,
|
||||
upgradeStableVersions: true,
|
||||
disabledPackages: Enumerable.Empty<string>()));
|
||||
|
@ -50,11 +56,14 @@ namespace Microsoft.DotNet.Scripts
|
|||
body += PullRequestCreator.NotificationString(s_config.GitHubPullRequestNotifications);
|
||||
}
|
||||
|
||||
new PullRequestCreator(gitHubAuth, origin, upstreamBranch)
|
||||
new PullRequestCreator(gitHubAuth)
|
||||
.CreateOrUpdateAsync(
|
||||
suggestedMessage,
|
||||
suggestedMessage + $" ({upstreamBranch.Name})",
|
||||
body)
|
||||
body,
|
||||
upstreamBranch,
|
||||
origin,
|
||||
new PullRequestOptions())
|
||||
.Wait();
|
||||
}
|
||||
}
|
||||
|
@ -84,6 +93,11 @@ namespace Microsoft.DotNet.Scripts
|
|||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftNETCoreAppPackageVersion", "Microsoft.NETCore.App");
|
||||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftDotNetPlatformAbstractionsPackageVersion", "Microsoft.DotNet.PlatformAbstractions");
|
||||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftExtensionsDependencyModelPackageVersion", "Microsoft.Extensions.DependencyModel");
|
||||
|
||||
if (s_config.HasRoslynVersionFragment)
|
||||
{
|
||||
yield return CreateRegexUpdater(dependencyVersionsPath, "MicrosoftCodeAnalysisCSharpPackageVersion", "Microsoft.CodeAnalysis.CSharp");
|
||||
}
|
||||
}
|
||||
|
||||
private static IDependencyUpdater CreateRegexUpdater(string repoRelativePath, string propertyName, string packageId)
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<div align="left" style="font-family: Helvetica;padding-left:10px">
|
||||
<p>The following was installed at /usr/local/share/dotnet</h2>
|
||||
<ul>
|
||||
<li>.NET Core SDK 2.2.0</li>
|
||||
<li>.NET Core SDK 2.1.300</li>
|
||||
<li>.NET Core Runtime 2.1.0</li>
|
||||
<li>ASP.NET Core Runtime 2.1.0</li>
|
||||
</ul>
|
||||
|
|
|
@ -24,14 +24,15 @@
|
|||
|
||||
<Text X="155" Y="80" Width="-11" Height="-70" TabStop="no" FontId="2" HexStyle="0x800000" DisablePrefix="yes" />
|
||||
<Text Name="WelcomeHeaderMessage" X="160" Y="81" Width="300" Height="30" TabStop="yes" FontId="2">#(loc.WelcomeHeaderMessage)</Text>
|
||||
<Text Name="WelcomeDescription" X="160" Y="125" Width="460" Height="65" TabStop="yes" FontId="3">#(loc.WelcomeDescription)</Text>
|
||||
<Text Name="LearnMoreTitle" X="160" Y="179" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.LearnMoreTitle)</Text>
|
||||
<Hypertext Name="CoreDocumentationLink" X="185" Y="223" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.CoreDocumentationLink)</Hypertext>
|
||||
<Hypertext Name="SDKDocumentation" X="185" Y="243" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SDKDocumentation)</Hypertext>
|
||||
<Hypertext Name="PrivacyStatementLink" X="185" Y="263" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.PrivacyStatementLink)</Hypertext>
|
||||
<Hypertext Name="MITLicenseLink" X="185" Y="283" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.MITLicenseLink)</Hypertext>
|
||||
<Text Name="InstallationNoteTitle" X="160" Y="308" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.InstallationNoteTitle)</Text>
|
||||
<Text Name="InstallationNote" X="160" Y="352" Width="460" Height="30" TabStop="yes" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.InstallationNote)</Text>
|
||||
<Text Name="WelcomeDescription" X="160" Y="115" Width="460" Height="65" TabStop="yes" FontId="3">#(loc.WelcomeDescription)</Text>
|
||||
<Text Name="LearnMoreTitle" X="160" Y="164" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.LearnMoreTitle)</Text>
|
||||
<Hypertext Name="CoreDocumentationLink" X="185" Y="198" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.CoreDocumentationLink)</Hypertext>
|
||||
<Hypertext Name="SDKDocumentation" X="185" Y="218" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.SDKDocumentation)</Hypertext>
|
||||
<Hypertext Name="PrivacyStatementLink" X="185" Y="238" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.PrivacyStatementLink)</Hypertext>
|
||||
<Hypertext Name="MITLicenseLink" X="185" Y="258" Width="400" Height="22" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.MITLicenseLink)</Hypertext>
|
||||
<Text Name="InstallationNoteTitle" X="160" Y="278" Width="460" Height="30" TabStop="yes" FontId="2">#(loc.InstallationNoteTitle)</Text>
|
||||
<Text Name="InstallationNote" X="160" Y="312" Width="460" Height="30" TabStop="yes" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.InstallationNote)</Text>
|
||||
<Hypertext Name="VisualStudioWarning" X="160" Y="350" Width="460" Height="30" TabStop="yes" FontId="3" HideWhenDisabled="yes" DisablePrefix="yes">#(loc.VisualStudioWarning)</Hypertext>
|
||||
<Button Name="InstallButton" X="-91" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallInstallButton)</Button>
|
||||
<Button Name="WelcomeCancelButton" X="-11" Y="-11" Width="75" Height="23" TabStop="yes" FontId="0">#(loc.InstallCloseButton)</Button>
|
||||
</Page>
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<String Id="FirstTimeWelcomeMessage">The installation was successful
|
||||
|
||||
The following were installed at [DOTNETHOME]
|
||||
• .NET Core SDK 2.2.0
|
||||
• .NET Core SDK 2.1.300
|
||||
• .NET Core Runtime 2.1.0
|
||||
• ASP.NET Core Runtime 2.1.0
|
||||
|
||||
|
@ -74,4 +74,6 @@ Resources
|
|||
<String Id="InstallationNoteTitle">Installation note</String>
|
||||
<String Id="InstallationNote">A command will be run during the install process that will improve project restore speed and enable offline access. It will take up to a minute to complete.
|
||||
</String>
|
||||
<String Id="VisualStudioWarning">If you plan to use .NET Core 2.1 with Visual Studio, Visual Studio 2017 15.7 or newer is recommended. <A HREF="https://go.microsoft.com/fwlink/?linkid=866799">Learn More</A>.
|
||||
</String>
|
||||
</WixLocalization>
|
||||
|
|
|
@ -16,7 +16,7 @@ param(
|
|||
|
||||
if($Help)
|
||||
{
|
||||
Write-Output "Usage: .\run-build.ps1 [-Configuration <CONFIGURATION>] [-Architecture <ARCHITECTURE>] [-NoPackage] [-Help]"
|
||||
Write-Output "Usage: .\run-build.ps1 [-Configuration <CONFIGURATION>] [-Architecture <ARCHITECTURE>] [-NoPackage] [-NoBuild] [-Help]"
|
||||
Write-Output ""
|
||||
Write-Output "Options:"
|
||||
Write-Output " -Configuration <CONFIGURATION> Build the specified Configuration (Debug or Release, default: Debug)"
|
||||
|
@ -27,6 +27,20 @@ if($Help)
|
|||
exit 0
|
||||
}
|
||||
|
||||
# The first 'pass' call to "dotnet msbuild build.proj" has a hard-coded "WriteDynamicPropsToStaticPropsFiles" target
|
||||
# therefore, this call should not have other targets defined. Remove all targets passed in as 'extra parameters'.
|
||||
if ($ExtraParameters)
|
||||
{
|
||||
$ExtraParametersNoTargets = $ExtraParameters.GetRange(0,$ExtraParameters.Count)
|
||||
foreach ($param in $ExtraParameters)
|
||||
{
|
||||
if(($param.StartsWith("/t:", [StringComparison]::OrdinalIgnoreCase)) -or ($param.StartsWith("/target:", [StringComparison]::OrdinalIgnoreCase)))
|
||||
{
|
||||
$ExtraParametersNoTargets.Remove("$param") | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$env:CONFIGURATION = $Configuration;
|
||||
$RepoRoot = "$PSScriptRoot"
|
||||
if(!$env:NUGET_PACKAGES){
|
||||
|
@ -86,7 +100,7 @@ if ($NoBuild)
|
|||
}
|
||||
else
|
||||
{
|
||||
dotnet msbuild build.proj /p:Architecture=$Architecture /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $ExtraParameters
|
||||
dotnet msbuild build.proj /p:Architecture=$Architecture /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $ExtraParametersNoTargets
|
||||
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$Architecture $ExtraParameters
|
||||
if($LASTEXITCODE -ne 0) { throw "Failed to build" }
|
||||
}
|
||||
|
|
39
run-build.sh
39
run-build.sh
|
@ -58,8 +58,6 @@ source "$REPOROOT/scripts/common/_prettyprint.sh"
|
|||
BUILD=1
|
||||
|
||||
LINUX_PORTABLE_INSTALL_ARGS=
|
||||
ALL_LINUX_INSTALLERS_TARGET=
|
||||
GENERATE_INSTALLERS_TARGET=
|
||||
CUSTOM_BUILD_ARGS=
|
||||
|
||||
# Set nuget package cache under the repo
|
||||
|
@ -84,7 +82,7 @@ while [[ $# > 0 ]]; do
|
|||
--nobuild)
|
||||
BUILD=0
|
||||
;;
|
||||
--architecture)
|
||||
-a|--architecture)
|
||||
ARCHITECTURE=$2
|
||||
shift
|
||||
;;
|
||||
|
@ -100,31 +98,21 @@ while [[ $# > 0 ]]; do
|
|||
LINUX_PORTABLE_INSTALL_ARGS="--runtime-id linux-x64"
|
||||
CUSTOM_BUILD_ARGS="/p:Rid=\"linux-x64\" /p:OSName=\"linux\" /p:IslinuxPortable=\"true\""
|
||||
;;
|
||||
--all-linux-installers)
|
||||
ALL_LINUX_INSTALLERS_TARGET="/t:BuildAndPublishAllLinuxDistrosNativeInstallers"
|
||||
;;
|
||||
--generate-installers)
|
||||
GENERATE_INSTALLERS_TARGET="/t:GenerateInstallersAndCopyOutOfSandBox"
|
||||
;;
|
||||
--stage0)
|
||||
STAGE0_SOURCE_DIR=$2
|
||||
shift
|
||||
;;
|
||||
--help)
|
||||
echo "Usage: $0 [--configuration <CONFIGURATION>] [--skip-prereqs] [--nopackage] [--docker <IMAGENAME>] [--help]"
|
||||
echo "Usage: $0 [--configuration <CONFIGURATION>] [--architecture <ARCHITECTURE>] [--skip-prereqs] [--nopackage] [--nobuild ] [--docker <IMAGENAME>] [--stage0 <DIRECTORY>] [--help]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " --configuration <CONFIGURATION> Build the specified Configuration (Debug or Release, default: Debug)"
|
||||
echo " --architecture <ARCHITECTURE> Build the specified architecture (x64 or x86 (supported only on Windows), default: x64)"
|
||||
echo " --skip-prereqs Skip checks for pre-reqs in dotnet_install"
|
||||
echo " --nopackage Skip packaging targets"
|
||||
echo " --nobuild Skip building, showing the command that would be used to build"
|
||||
echo " --docker <IMAGENAME> Build in Docker using the Dockerfile located in scripts/docker/IMAGENAME"
|
||||
echo " --linux-portable Builds the Linux portable .NET Tools instead of a distro-specific version."
|
||||
echo " --all-linux-installers Builds and publishes all the Linux distros' native installers; outer call"
|
||||
echo " Note: used primarily for 'AllLinuxDistrosNativeInstallers' VSO build."
|
||||
echo " --generate-installers Builds and publishes all the Linux distros' native installers; inner call"
|
||||
echo " Note: used primarily for 'AllLinuxDistrosNativeInstallers' VSO build."
|
||||
echo " --stage0 Set the stage0 source directory. The default is to download it from Azure."
|
||||
echo " --stage0 <DIRECTORY> Set the stage0 source directory. The default is to download it from Azure."
|
||||
echo " --help Display this help message"
|
||||
exit 0
|
||||
;;
|
||||
|
@ -137,6 +125,17 @@ while [[ $# > 0 ]]; do
|
|||
shift
|
||||
done
|
||||
|
||||
# The first 'pass' call to "dotnet msbuild build.proj" has a hard-coded "WriteDynamicPropsToStaticPropsFiles" target
|
||||
# therefore, this call should not have other targets defined. Remove all targets passed in as 'extra parameters'.
|
||||
argsnotargets=( )
|
||||
for arg in ${args[@]}
|
||||
do
|
||||
arglower="$(echo $arg | awk '{print tolower($0)}')"
|
||||
if [[ $arglower != '/t:'* ]] && [[ $arglower != '/target:'* ]]; then
|
||||
argsnotargets+=($arg)
|
||||
fi
|
||||
done
|
||||
|
||||
# Create an install directory for the stage 0 CLI
|
||||
[ -z "$DOTNET_INSTALL_DIR" ] && export DOTNET_INSTALL_DIR=$REPOROOT/.dotnet_stage0/$ARCHITECTURE
|
||||
[ -d "$DOTNET_INSTALL_DIR" ] || mkdir -p $DOTNET_INSTALL_DIR
|
||||
|
@ -179,12 +178,10 @@ fi
|
|||
# Disable first run since we want to control all package sources
|
||||
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
|
||||
|
||||
echo "${args[@]}"
|
||||
|
||||
if [ $BUILD -eq 1 ]; then
|
||||
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $args
|
||||
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $ALL_LINUX_INSTALLERS_TARGET $GENERATE_INSTALLERS_TARGET $args
|
||||
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $argsnotargets
|
||||
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $args
|
||||
else
|
||||
echo "Not building due to --nobuild"
|
||||
echo "Command that would be run is: 'dotnet msbuild build.proj /m /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $ALL_LINUX_INSTALLERS_TARGET $GENERATE_INSTALLERS_TARGET $args'"
|
||||
echo "Command that would be run is: 'dotnet msbuild build.proj /m /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $args'"
|
||||
fi
|
||||
|
|
|
@ -13,7 +13,7 @@ done
|
|||
|
||||
REPO_ROOT="$( cd -P "$( dirname "$SOURCE" )/../" && pwd )"
|
||||
|
||||
STAGE0_DIR=$REPO_ROOT.dotnet_stage0/x64
|
||||
STAGE0_DIR=$REPO_ROOT/.dotnet_stage0/x64
|
||||
export PATH=$STAGE0_DIR:$PATH
|
||||
|
||||
|
||||
|
|
|
@ -136,5 +136,8 @@ docker run $INTERACTIVE -t --rm --sig-proxy=true \
|
|||
-e AZUREACCOUNTNAME \
|
||||
-e RELEASETOOLSGITURL \
|
||||
-e CORESETUPBLOBROOTURL \
|
||||
-e PB_ASSETROOTURL \
|
||||
-e PB_PACKAGEVERSIONPROPSURL \
|
||||
-e PB_PUBLISHBLOBFEEDURL \
|
||||
$DOTNET_BUILD_CONTAINER_TAG \
|
||||
$BUILD_COMMAND "$@"
|
||||
|
|
73
scripts/obtain/dotnet-install.ps1
vendored
73
scripts/obtain/dotnet-install.ps1
vendored
|
@ -34,8 +34,17 @@
|
|||
Architecture of dotnet binaries to be installed.
|
||||
Possible values are: <auto>, x64 and x86
|
||||
.PARAMETER SharedRuntime
|
||||
This parameter is obsolete and may be removed in a future version of this script.
|
||||
The recommended alternative is '-Runtime dotnet'.
|
||||
|
||||
Default: false
|
||||
Installs just the shared runtime bits, not the entire SDK
|
||||
Installs just the shared runtime bits, not the entire SDK.
|
||||
This is equivalent to specifying `-Runtime dotnet`.
|
||||
.PARAMETER Runtime
|
||||
Installs just a shared runtime, not the entire SDK.
|
||||
Possible values:
|
||||
- dotnet
|
||||
- aspnetcore
|
||||
.PARAMETER DryRun
|
||||
If set it will not perform installation but instead display what command line to use to consistently install
|
||||
currently requested version of dotnet cli. In example if you specify version 'latest' it will display a link
|
||||
|
@ -71,6 +80,9 @@ param(
|
|||
[string]$Version="Latest",
|
||||
[string]$InstallDir="<auto>",
|
||||
[string]$Architecture="<auto>",
|
||||
[ValidateSet("dotnet", "aspnetcore", IgnoreCase = $false)]
|
||||
[string]$Runtime,
|
||||
[Obsolete("This parameter may be removed in a future version of this script. The recommended alternative is '-Runtime dotnet'.")]
|
||||
[switch]$SharedRuntime,
|
||||
[switch]$DryRun,
|
||||
[switch]$NoPath,
|
||||
|
@ -88,6 +100,10 @@ $ProgressPreference="SilentlyContinue"
|
|||
|
||||
$BinFolderRelativePath=""
|
||||
|
||||
if ($SharedRuntime -and (-not $Runtime)) {
|
||||
$Runtime = "dotnet"
|
||||
}
|
||||
|
||||
# example path with regex: shared/1.0.0-beta-12345/somepath
|
||||
$VersionRegEx="/\d+\.\d+[^/]+/"
|
||||
$OverrideNonVersionedFiles = !$SkipNonVersionedFiles
|
||||
|
@ -230,9 +246,12 @@ function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel, [bool]$Co
|
|||
Say-Invocation $MyInvocation
|
||||
|
||||
$VersionFileUrl = $null
|
||||
if ($SharedRuntime) {
|
||||
if ($Runtime -eq "dotnet") {
|
||||
$VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.version"
|
||||
}
|
||||
elseif ($Runtime) {
|
||||
$VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.$Runtime.version"
|
||||
}
|
||||
else {
|
||||
if ($Coherent) {
|
||||
$VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.coherent.version"
|
||||
|
@ -277,8 +296,8 @@ function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel,
|
|||
function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
if ($SharedRuntime) {
|
||||
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/dotnet-runtime-$SpecificVersion-win-$CLIArchitecture.zip"
|
||||
if ($Runtime) {
|
||||
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/$Runtime-runtime-$SpecificVersion-win-$CLIArchitecture.zip"
|
||||
}
|
||||
else {
|
||||
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-sdk-$SpecificVersion-win-$CLIArchitecture.zip"
|
||||
|
@ -292,11 +311,14 @@ function Get-Download-Link([string]$AzureFeed, [string]$SpecificVersion, [string
|
|||
function Get-LegacyDownload-Link([string]$AzureFeed, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
if ($SharedRuntime) {
|
||||
if (-not $Runtime) {
|
||||
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-dev-win-$CLIArchitecture.$SpecificVersion.zip"
|
||||
}
|
||||
elseif ($Runtime -eq "dotnet") {
|
||||
$PayloadURL = "$AzureFeed/Runtime/$SpecificVersion/dotnet-win-$CLIArchitecture.$SpecificVersion.zip"
|
||||
}
|
||||
else {
|
||||
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-dev-win-$CLIArchitecture.$SpecificVersion.zip"
|
||||
return $null
|
||||
}
|
||||
|
||||
Say-Verbose "Constructed legacy payload URL: $PayloadURL"
|
||||
|
@ -465,7 +487,9 @@ $LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVer
|
|||
if ($DryRun) {
|
||||
Say "Payload URLs:"
|
||||
Say "Primary - $DownloadLink"
|
||||
Say "Legacy - $LegacyDownloadLink"
|
||||
if ($LegacyDownloadLink) {
|
||||
Say "Legacy - $LegacyDownloadLink"
|
||||
}
|
||||
Say "Repeatable invocation: .\$($MyInvocation.Line)"
|
||||
exit 0
|
||||
}
|
||||
|
@ -473,10 +497,22 @@ if ($DryRun) {
|
|||
$InstallRoot = Resolve-Installation-Path $InstallDir
|
||||
Say-Verbose "InstallRoot: $InstallRoot"
|
||||
|
||||
$IsSdkInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage "sdk" -SpecificVersion $SpecificVersion
|
||||
Say-Verbose ".NET SDK installed? $IsSdkInstalled"
|
||||
if ($IsSdkInstalled) {
|
||||
Say ".NET SDK version $SpecificVersion is already installed."
|
||||
if ($Runtime -eq "dotnet") {
|
||||
$assetName = ".NET Core Runtime"
|
||||
$dotnetPackageRelativePath = "shared\Microsoft.NETCore.App"
|
||||
}
|
||||
elseif ($Runtime -eq "aspnetcore") {
|
||||
$assetName = "ASP.NET Core Runtime"
|
||||
$dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.All"
|
||||
}
|
||||
else {
|
||||
$assetName = ".NET Core SDK"
|
||||
$dotnetPackageRelativePath = "sdk"
|
||||
}
|
||||
|
||||
$isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
|
||||
if ($isAssetInstalled) {
|
||||
Say "$assetName version $SpecificVersion is already installed."
|
||||
Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath
|
||||
exit 0
|
||||
}
|
||||
|
@ -498,11 +534,16 @@ try {
|
|||
}
|
||||
catch {
|
||||
Say "Cannot download: $DownloadLink"
|
||||
$DownloadLink = $LegacyDownloadLink
|
||||
$ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())
|
||||
Say-Verbose "Legacy zip path: $ZipPath"
|
||||
Say "Downloading legacy link: $DownloadLink"
|
||||
DownloadFile -Uri $DownloadLink -OutPath $ZipPath
|
||||
if ($LegacyDownloadLink) {
|
||||
$DownloadLink = $LegacyDownloadLink
|
||||
$ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())
|
||||
Say-Verbose "Legacy zip path: $ZipPath"
|
||||
Say "Downloading legacy link: $DownloadLink"
|
||||
DownloadFile -Uri $DownloadLink -OutPath $ZipPath
|
||||
}
|
||||
else {
|
||||
throw "Could not download $assetName version $SpecificVersion"
|
||||
}
|
||||
}
|
||||
|
||||
Say "Extracting zip from $DownloadLink"
|
||||
|
|
171
scripts/obtain/dotnet-install.sh
vendored
171
scripts/obtain/dotnet-install.sh
vendored
|
@ -39,6 +39,10 @@ if [ -t 1 ] && command -v tput > /dev/null; then
|
|||
fi
|
||||
fi
|
||||
|
||||
say_warning() {
|
||||
printf "%b\n" "${yellow:-}dotnet_install: Warning: $1${normal:-}"
|
||||
}
|
||||
|
||||
say_err() {
|
||||
printf "%b\n" "${red:-}dotnet_install: Error: $1${normal:-}" >&2
|
||||
}
|
||||
|
@ -134,7 +138,7 @@ get_linux_platform_name() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
say_verbose "Linux specific platform name and version could not be detected: $ID.$VERSION_ID"
|
||||
return 1
|
||||
}
|
||||
|
@ -158,7 +162,7 @@ get_current_os_name() {
|
|||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
say_err "OS name could not be detected: $ID.$VERSION_ID"
|
||||
return 1
|
||||
}
|
||||
|
@ -183,7 +187,7 @@ get_legacy_os_name() {
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
say_verbose "Distribution specific OS name and version could not be detected: $ID.$VERSION_ID"
|
||||
return 1
|
||||
}
|
||||
|
@ -213,7 +217,7 @@ check_min_reqs() {
|
|||
|
||||
check_pre_reqs() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local failing=false;
|
||||
|
||||
if [ "${DOTNET_INSTALL_SKIP_PREREQS:-}" = "1" ]; then
|
||||
|
@ -240,7 +244,7 @@ check_pre_reqs() {
|
|||
if [ "$failing" = true ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -248,7 +252,7 @@ check_pre_reqs() {
|
|||
# input - $1
|
||||
to_lowercase() {
|
||||
#eval $invocation
|
||||
|
||||
|
||||
echo "$1" | tr '[:upper:]' '[:lower:]'
|
||||
return 0
|
||||
}
|
||||
|
@ -257,7 +261,7 @@ to_lowercase() {
|
|||
# input - $1
|
||||
remove_trailing_slash() {
|
||||
#eval $invocation
|
||||
|
||||
|
||||
local input="${1:-}"
|
||||
echo "${input%/}"
|
||||
return 0
|
||||
|
@ -267,7 +271,7 @@ remove_trailing_slash() {
|
|||
# input - $1
|
||||
remove_beginning_slash() {
|
||||
#eval $invocation
|
||||
|
||||
|
||||
local input="${1:-}"
|
||||
echo "${input#/}"
|
||||
return 0
|
||||
|
@ -278,13 +282,13 @@ remove_beginning_slash() {
|
|||
# child_path - $2 - this parameter can be empty
|
||||
combine_paths() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
# TODO: Consider making it work with any number of paths. For now:
|
||||
if [ ! -z "${3:-}" ]; then
|
||||
say_err "combine_paths: Function takes two parameters."
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
local root_path="$(remove_trailing_slash "$1")"
|
||||
local child_path="$(remove_beginning_slash "${2:-}")"
|
||||
say_verbose "combine_paths: root_path=$root_path"
|
||||
|
@ -295,7 +299,7 @@ combine_paths() {
|
|||
|
||||
get_machine_architecture() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
# Currently the only one supported
|
||||
echo "x64"
|
||||
return 0
|
||||
|
@ -305,7 +309,7 @@ get_machine_architecture() {
|
|||
# architecture - $1
|
||||
get_normalized_architecture_from_architecture() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local architecture="$(to_lowercase "$1")"
|
||||
case "$architecture" in
|
||||
\<auto\>)
|
||||
|
@ -321,7 +325,7 @@ get_normalized_architecture_from_architecture() {
|
|||
return 1
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
say_err "Architecture \`$architecture\` not supported. If you think this is a bug, please report it at https://github.com/dotnet/cli/issues"
|
||||
return 1
|
||||
}
|
||||
|
@ -335,7 +339,7 @@ get_normalized_architecture_from_architecture() {
|
|||
# version_text - stdin
|
||||
get_version_from_version_info() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
cat | tail -n 1 | sed 's/\r$//'
|
||||
return 0
|
||||
}
|
||||
|
@ -344,7 +348,7 @@ get_version_from_version_info() {
|
|||
# version_text - stdin
|
||||
get_commit_hash_from_version_info() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
cat | head -n 1 | sed 's/\r$//'
|
||||
return 0
|
||||
}
|
||||
|
@ -355,14 +359,14 @@ get_commit_hash_from_version_info() {
|
|||
# specific_version - $3
|
||||
is_dotnet_package_installed() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local install_root="$1"
|
||||
local relative_path_to_package="$2"
|
||||
local specific_version="${3//[$'\t\r\n']}"
|
||||
|
||||
|
||||
local dotnet_package_path="$(combine_paths "$(combine_paths "$install_root" "$relative_path_to_package")" "$specific_version")"
|
||||
say_verbose "is_dotnet_package_installed: dotnet_package_path=$dotnet_package_path"
|
||||
|
||||
|
||||
if [ -d "$dotnet_package_path" ]; then
|
||||
return 0
|
||||
else
|
||||
|
@ -377,15 +381,17 @@ is_dotnet_package_installed() {
|
|||
# coherent - $4
|
||||
get_latest_version_info() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local azure_feed="$1"
|
||||
local channel="$2"
|
||||
local normalized_architecture="$3"
|
||||
local coherent="$4"
|
||||
|
||||
local version_file_url=null
|
||||
if [ "$shared_runtime" = true ]; then
|
||||
if [[ "$runtime" == "dotnet" ]]; then
|
||||
version_file_url="$uncached_feed/Runtime/$channel/latest.version"
|
||||
elif [ ! -z "$runtime" ]; then
|
||||
version_file_url="$uncached_feed/Runtime/$channel/latest.$runtime.version"
|
||||
else
|
||||
if [ "$coherent" = true ]; then
|
||||
version_file_url="$uncached_feed/Sdk/$channel/latest.coherent.version"
|
||||
|
@ -394,7 +400,7 @@ get_latest_version_info() {
|
|||
fi
|
||||
fi
|
||||
say_verbose "get_latest_version_info: latest url: $version_file_url"
|
||||
|
||||
|
||||
download "$version_file_url"
|
||||
return $?
|
||||
}
|
||||
|
@ -406,7 +412,7 @@ get_latest_version_info() {
|
|||
# version - $4
|
||||
get_specific_version_from_version() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local azure_feed="$1"
|
||||
local channel="$2"
|
||||
local normalized_architecture="$3"
|
||||
|
@ -441,22 +447,22 @@ get_specific_version_from_version() {
|
|||
# specific_version - $4
|
||||
construct_download_link() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local azure_feed="$1"
|
||||
local channel="$2"
|
||||
local normalized_architecture="$3"
|
||||
local specific_version="${4//[$'\t\r\n']}"
|
||||
|
||||
|
||||
local osname
|
||||
osname="$(get_current_os_name)" || return 1
|
||||
|
||||
local download_link=null
|
||||
if [ "$shared_runtime" = true ]; then
|
||||
download_link="$azure_feed/Runtime/$specific_version/dotnet-runtime-$specific_version-$osname-$normalized_architecture.tar.gz"
|
||||
if [ ! -z "$runtime" ]; then
|
||||
download_link="$azure_feed/Runtime/$specific_version/$runtime-runtime-$specific_version-$osname-$normalized_architecture.tar.gz"
|
||||
else
|
||||
download_link="$azure_feed/Sdk/$specific_version/dotnet-sdk-$specific_version-$osname-$normalized_architecture.tar.gz"
|
||||
fi
|
||||
|
||||
|
||||
echo "$download_link"
|
||||
return 0
|
||||
}
|
||||
|
@ -468,7 +474,7 @@ construct_download_link() {
|
|||
# specific_version - $4
|
||||
construct_legacy_download_link() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local azure_feed="$1"
|
||||
local channel="$2"
|
||||
local normalized_architecture="$3"
|
||||
|
@ -478,10 +484,12 @@ construct_legacy_download_link() {
|
|||
distro_specific_osname="$(get_legacy_os_name)" || return 1
|
||||
|
||||
local legacy_download_link=null
|
||||
if [ "$shared_runtime" = true ]; then
|
||||
if [[ "$runtime" == "dotnet" ]]; then
|
||||
legacy_download_link="$azure_feed/Runtime/$specific_version/dotnet-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz"
|
||||
else
|
||||
elif [ -z "$runtime" ]; then
|
||||
legacy_download_link="$azure_feed/Sdk/$specific_version/dotnet-dev-$distro_specific_osname-$normalized_architecture.$specific_version.tar.gz"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "$legacy_download_link"
|
||||
|
@ -490,7 +498,7 @@ construct_legacy_download_link() {
|
|||
|
||||
get_user_install_path() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
if [ ! -z "${DOTNET_INSTALL_DIR:-}" ]; then
|
||||
echo "$DOTNET_INSTALL_DIR"
|
||||
else
|
||||
|
@ -503,7 +511,7 @@ get_user_install_path() {
|
|||
# install_dir - $1
|
||||
resolve_installation_path() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local install_dir=$1
|
||||
if [ "$install_dir" = "<auto>" ]; then
|
||||
local user_install_path="$(get_user_install_path)"
|
||||
|
@ -511,7 +519,7 @@ resolve_installation_path() {
|
|||
echo "$user_install_path"
|
||||
return 0
|
||||
fi
|
||||
|
||||
|
||||
echo "$install_dir"
|
||||
return 0
|
||||
}
|
||||
|
@ -520,7 +528,7 @@ resolve_installation_path() {
|
|||
# install_root - $1
|
||||
get_installed_version_info() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local install_root="$1"
|
||||
local version_file="$(combine_paths "$install_root" "$local_version_file_relative_path")"
|
||||
say_verbose "Local version file: $version_file"
|
||||
|
@ -529,7 +537,7 @@ get_installed_version_info() {
|
|||
echo "$version_info"
|
||||
return 0
|
||||
fi
|
||||
|
||||
|
||||
say_verbose "Local version file not found."
|
||||
return 0
|
||||
}
|
||||
|
@ -538,7 +546,7 @@ get_installed_version_info() {
|
|||
# relative_or_absolute_path - $1
|
||||
get_absolute_path() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local relative_or_absolute_path=$1
|
||||
echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")"
|
||||
return 0
|
||||
|
@ -556,7 +564,7 @@ copy_files_or_dirs_from_list() {
|
|||
local out_path="$(remove_trailing_slash "$2")"
|
||||
local override="$3"
|
||||
local override_switch=$(if [ "$override" = false ]; then printf -- "-n"; fi)
|
||||
|
||||
|
||||
cat | uniq | while read -r file_path; do
|
||||
local path="$(remove_beginning_slash "${file_path#$root_path}")"
|
||||
local target="$out_path/$path"
|
||||
|
@ -572,21 +580,21 @@ copy_files_or_dirs_from_list() {
|
|||
# out_path - $2
|
||||
extract_dotnet_package() {
|
||||
eval $invocation
|
||||
|
||||
|
||||
local zip_path="$1"
|
||||
local out_path="$2"
|
||||
|
||||
|
||||
local temp_out_path="$(mktemp -d "$temporary_file_template")"
|
||||
|
||||
|
||||
local failed=false
|
||||
tar -xzf "$zip_path" -C "$temp_out_path" > /dev/null || failed=true
|
||||
|
||||
|
||||
local folders_with_version_regex='^.*/[0-9]+\.[0-9]+[^/]+/'
|
||||
find "$temp_out_path" -type f | grep -Eo "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" false
|
||||
find "$temp_out_path" -type f | grep -Ev "$folders_with_version_regex" | copy_files_or_dirs_from_list "$temp_out_path" "$out_path" "$override_non_versioned_files"
|
||||
|
||||
|
||||
rm -rf "$temp_out_path"
|
||||
|
||||
|
||||
if [ "$failed" = true ]; then
|
||||
say_err "Extraction failed"
|
||||
return 1
|
||||
|
@ -665,14 +673,14 @@ calculate_vars() {
|
|||
|
||||
normalized_architecture="$(get_normalized_architecture_from_architecture "$architecture")"
|
||||
say_verbose "normalized_architecture=$normalized_architecture"
|
||||
|
||||
|
||||
specific_version="$(get_specific_version_from_version "$azure_feed" "$channel" "$normalized_architecture" "$version")"
|
||||
say_verbose "specific_version=$specific_version"
|
||||
if [ -z "$specific_version" ]; then
|
||||
say_err "Could not get version information."
|
||||
return 1
|
||||
fi
|
||||
|
||||
|
||||
download_link="$(construct_download_link "$azure_feed" "$channel" "$normalized_architecture" "$specific_version")"
|
||||
say_verbose "download_link=$download_link"
|
||||
|
||||
|
@ -691,35 +699,57 @@ calculate_vars() {
|
|||
install_dotnet() {
|
||||
eval $invocation
|
||||
local download_failed=false
|
||||
local asset_name=''
|
||||
local asset_relative_path=''
|
||||
|
||||
if is_dotnet_package_installed "$install_root" "sdk" "$specific_version"; then
|
||||
say ".NET SDK version $specific_version is already installed."
|
||||
if [[ "$runtime" == "dotnet" ]]; then
|
||||
asset_relative_path="shared/Microsoft.NETCore.App"
|
||||
asset_name=".NET Core Runtime"
|
||||
elif [[ "$runtime" == "aspnetcore" ]]; then
|
||||
asset_relative_path="shared/Microsoft.AspNetCore.All"
|
||||
asset_name="ASP.NET Core Runtime"
|
||||
else
|
||||
asset_relative_path="sdk"
|
||||
asset_name=".NET Core SDK"
|
||||
fi
|
||||
|
||||
if is_dotnet_package_installed "$install_root" "$asset_relative_path" "$specific_version"; then
|
||||
say "$asset_name version $specific_version is already installed."
|
||||
return 0
|
||||
fi
|
||||
|
||||
|
||||
mkdir -p "$install_root"
|
||||
zip_path="$(mktemp "$temporary_file_template")"
|
||||
say_verbose "Zip path: $zip_path"
|
||||
|
||||
say "Downloading link: $download_link"
|
||||
|
||||
|
||||
# Failures are normal in the non-legacy case for ultimately legacy downloads.
|
||||
# Do not output to stderr, since output to stderr is considered an error.
|
||||
download "$download_link" "$zip_path" 2>&1 || download_failed=true
|
||||
|
||||
# if the download fails, download the legacy_download_link
|
||||
if [ "$download_failed" = true ] && [ "$valid_legacy_download_link" = true ]; then
|
||||
if [ "$download_failed" = true ]; then
|
||||
say "Cannot download: $download_link"
|
||||
download_link="$legacy_download_link"
|
||||
zip_path="$(mktemp "$temporary_file_template")"
|
||||
say_verbose "Legacy zip path: $zip_path"
|
||||
say "Downloading legacy link: $download_link"
|
||||
download "$download_link" "$zip_path"
|
||||
|
||||
if [ "$valid_legacy_download_link" = true ]; then
|
||||
download_failed=false
|
||||
download_link="$legacy_download_link"
|
||||
zip_path="$(mktemp "$temporary_file_template")"
|
||||
say_verbose "Legacy zip path: $zip_path"
|
||||
say "Downloading legacy link: $download_link"
|
||||
download "$download_link" "$zip_path" 2>&1 || download_failed=true
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
if [ "$download_failed" = true ]; then
|
||||
say_err "Could not download $asset_name version $specific_version"
|
||||
return 1
|
||||
fi
|
||||
|
||||
say "Extracting zip from $download_link"
|
||||
extract_dotnet_package "$zip_path" "$install_root"
|
||||
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
|
@ -737,7 +767,7 @@ azure_feed="https://dotnetcli.azureedge.net/dotnet"
|
|||
uncached_feed="https://dotnetcli.blob.core.windows.net/dotnet"
|
||||
feed_credential=""
|
||||
verbose=false
|
||||
shared_runtime=false
|
||||
runtime=""
|
||||
runtime_id=""
|
||||
override_non_versioned_files=true
|
||||
|
||||
|
@ -762,7 +792,18 @@ do
|
|||
architecture="$1"
|
||||
;;
|
||||
--shared-runtime|-[Ss]hared[Rr]untime)
|
||||
shared_runtime=true
|
||||
say_warning "The --shared-runtime flag is obsolete and may be removed in a future version of this script. The recommended usage is to specify '--runtime dotnet'."
|
||||
if [ -z "$runtime" ]; then
|
||||
runtime="dotnet"
|
||||
fi
|
||||
;;
|
||||
--runtime|-[Rr]untime)
|
||||
shift
|
||||
runtime="$1"
|
||||
if [[ "$runtime" != "dotnet" ]] && [[ "$runtime" != "aspnetcore" ]]; then
|
||||
say_err "Unsupported value for --runtime: '$1'. Valid values are 'dotnet' and 'aspnetcore'."
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--dry-run|-[Dd]ry[Rr]un)
|
||||
dry_run=true
|
||||
|
@ -790,7 +831,6 @@ do
|
|||
runtime_id="$1"
|
||||
;;
|
||||
--skip-non-versioned-files|-[Ss]kip[Nn]on[Vv]ersioned[Ff]iles)
|
||||
shift
|
||||
override_non_versioned_files=false
|
||||
;;
|
||||
-?|--?|-h|--help|-[Hh]elp)
|
||||
|
@ -823,8 +863,11 @@ do
|
|||
echo " -InstallDir"
|
||||
echo " --architecture <ARCHITECTURE> Architecture of .NET Tools. Currently only x64 is supported."
|
||||
echo " --arch,-Architecture,-Arch"
|
||||
echo " --shared-runtime Installs just the shared runtime bits, not the entire SDK."
|
||||
echo " -SharedRuntime"
|
||||
echo " --runtime <RUNTIME> Installs a shared runtime only, without the SDK."
|
||||
echo " -Runtime"
|
||||
echo " Possible values:"
|
||||
echo " - dotnet - the Microsoft.NETCore.App shared framework"
|
||||
echo " - aspnetcore - the Microsoft.AspNetCore.All shared framework"
|
||||
echo " --skip-non-versioned-files Skips non-versioned files if they already exist, such as the dotnet executable."
|
||||
echo " -SkipNonVersionedFiles"
|
||||
echo " --dry-run,-DryRun Do not perform installation. Display download link."
|
||||
|
@ -837,6 +880,10 @@ do
|
|||
echo " -RuntimeId"
|
||||
echo " -?,--?,-h,--help,-Help Shows this help message"
|
||||
echo ""
|
||||
echo "Obsolete parameters:"
|
||||
echo " --shared-runtime The recommended alternative is '--runtime dotnet'."
|
||||
echo " -SharedRuntime Installs just the shared runtime bits, not the entire SDK."
|
||||
echo ""
|
||||
echo "Install Location:"
|
||||
echo " Location is chosen in following order:"
|
||||
echo " - --install-dir option"
|
||||
|
|
|
@ -5,7 +5,6 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Utils
|
||||
{
|
||||
|
@ -22,7 +21,12 @@ namespace Microsoft.DotNet.Cli.Utils
|
|||
/// <returns></returns>
|
||||
public static string EscapeAndConcatenateArgArrayForProcessStart(IEnumerable<string> args)
|
||||
{
|
||||
return string.Join(" ", EscapeArgArray(args));
|
||||
var escaped = EscapeArgArray(args);
|
||||
#if NET35
|
||||
return string.Join(" ", escaped.ToArray());
|
||||
#else
|
||||
return string.Join(" ", escaped);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -36,7 +40,12 @@ namespace Microsoft.DotNet.Cli.Utils
|
|||
/// <returns></returns>
|
||||
public static string EscapeAndConcatenateArgArrayForCmdProcessStart(IEnumerable<string> args)
|
||||
{
|
||||
return string.Join(" ", EscapeArgArrayForCmd(args));
|
||||
var escaped = EscapeArgArrayForCmd(args);
|
||||
#if NET35
|
||||
return string.Join(" ", escaped.ToArray());
|
||||
#else
|
||||
return string.Join(" ", escaped);
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -24,6 +24,8 @@ namespace Microsoft.DotNet.Cli.Utils
|
|||
return OSX;
|
||||
case Platform.Linux:
|
||||
return Linux;
|
||||
case Platform.FreeBSD:
|
||||
return FreeBSD;
|
||||
default:
|
||||
throw new InvalidOperationException("Unknown Platform");
|
||||
}
|
||||
|
@ -62,6 +64,8 @@ namespace Microsoft.DotNet.Cli.Utils
|
|||
StaticLib = ".a"
|
||||
};
|
||||
|
||||
public static PlatformFileNameSuffixes FreeBSD { get; } = Linux;
|
||||
|
||||
public struct PlatformFileNameSuffixes
|
||||
{
|
||||
public string DynamicLib { get; internal set; }
|
||||
|
|
|
@ -216,7 +216,7 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="IgnoringPreferCLIRuntimeFile">
|
||||
<source>{0}: Ignoring prefercliruntime file as the tool target framework ({1}) has a different major version than the current CLI runtime ({2})</source>
|
||||
<target state="translated">{0}: Die Datei "prefercliruntime" wird ignoriert, da das Tool-Ziellaufwerk ({1}) eine andere Hauptversion aufweist als die aktuelle CLI-Laufzeit ({2}).</target>
|
||||
<target state="translated">{0}: Die Datei "prefercliruntime" wird ignoriert, da das Tool-Ziellaufwerk ({1}) eine andere Hauptversion aufweist als die aktuelle CLI-Runtime ({2}).</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="CouldNotFindToolRuntimeConfigFile">
|
||||
|
|
|
@ -12,20 +12,23 @@ namespace Microsoft.DotNet.Configurer
|
|||
{
|
||||
public class CliFolderPathCalculator
|
||||
{
|
||||
private const string ToolsFolderName = "tools";
|
||||
// ToolsShimFolderName ToolPackageFolderName cannot be the same
|
||||
// or if the PackageId is the same as CommandName, they will conflict on unix.
|
||||
private const string ToolsShimFolderName = "tools";
|
||||
private const string ToolPackageFolderName = "toolspkgs";
|
||||
private const string DotnetProfileDirectoryName = ".dotnet";
|
||||
|
||||
public string CliFallbackFolderPath => Environment.GetEnvironmentVariable("DOTNET_CLI_TEST_FALLBACKFOLDER") ??
|
||||
Path.Combine(new DirectoryInfo(AppContext.BaseDirectory).Parent.FullName, "NuGetFallbackFolder");
|
||||
|
||||
public string ExecutablePackagesPath => Path.Combine(DotnetUserProfileFolderPath, ToolsFolderName);
|
||||
|
||||
public BashPathUnderHomeDirectory ExecutablePackagesPathInUnix
|
||||
public string ToolsShimPath => Path.Combine(DotnetUserProfileFolderPath, ToolsShimFolderName);
|
||||
public string ToolsPackagePath => Path.Combine(DotnetUserProfileFolderPath, ToolPackageFolderName);
|
||||
public BashPathUnderHomeDirectory ToolsShimPathInUnix
|
||||
{
|
||||
get
|
||||
{
|
||||
return new BashPathUnderHomeDirectory(Environment.GetEnvironmentVariable("HOME"),
|
||||
Path.Combine(DotnetProfileDirectoryName, ToolsFolderName));
|
||||
Path.Combine(DotnetProfileDirectoryName, ToolsShimFolderName));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -150,6 +150,8 @@ Here are some options to fix this error:
|
|||
<data name="AspNetCertificateInstalled" xml:space="preserve">
|
||||
<value>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</value>
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -61,8 +61,10 @@ Tuto chybu můžete opravit pomocí některé z těchto možností:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Nainstaloval se vývojový certifikát ASP.NET Core HTTPS. Další informace najdete na https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Im Folgenden finden Sie einige Optionen, um diesen Fehler zu beheben:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Installiertes ASP.NET Core-HTTPS-Entwicklungszertifikat. Weitere Informationen finden Sie unter https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -60,8 +60,10 @@ Estas son algunas opciones para corregir este error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Se instaló el certificado de desarrollo HTTPS de ASP.NET Core. Para más información, vaya a https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Voici quelques options pour corriger cette erreur :
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Certificat de développement HTTPS ASP.NET Core installé. Pour plus d’informations, accédez à https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Ecco alcune opzioni per correggere questo errore:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Il certificato di sviluppo HTTPS di ASP.NET Core è stato installato. Per altre informazioni, vedere https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
ASP.NET Core HTTPS 開発証明書をインストールしました。詳しくは、https://go.microsoft.com/fwlink/?linkid=84805 をご覧ください</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
설치된 ASP.NET Core HTTPS 개발 인증서. 자세한 내용은 https://go.microsoft.com/fwlink/?linkid=84805을(를) 참조하세요.</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Oto kilka opcji naprawiania tego błędu:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Zainstalowany certyfikat programistyczny HTTPS ASP.NET Core. Aby uzyskać więcej informacji, przejdź na adres https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Aqui estão algumas opções para corrigir este erro:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Certificado de desenvolvimento de HTTPS do ASP.NET Core instalado. Para obter mais informações, vá para https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
Установлен сертификат для HTTPS-разработки на ASP.NET Core. Дополнительные сведения: https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Bu hatayı düzeltmek için bazı seçenekler:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
ASP.NET Core HTTPS geliştirme sertifikası yüklendi. Daha fazla bilgi için bkz. https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
安装 ASP.NET Core HTTPS 开发证书。有关详细信息,请转到 https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -61,8 +61,10 @@ Here are some options to fix this error:
|
|||
<trans-unit id="AspNetCertificateInstalled">
|
||||
<source>ASP.NET Core
|
||||
------------
|
||||
Installed ASP.NET Core HTTPS development certificate. For more information go to https://go.microsoft.com/fwlink/?linkid=84805</source>
|
||||
<target state="translated">ASP.NET Core
|
||||
Successfully installed the ASP.NET Core HTTPS Development Certificate.
|
||||
To trust the certificate (Windows and macOS only) first install the dev-certs tool by running 'dotnet install tool dotnet-dev-certs -g --version 2.1.0-preview1-final' and then run 'dotnet-dev-certs https --trust'.
|
||||
For more information on configuring HTTPS see https://go.microsoft.com/fwlink/?linkid=848054.</source>
|
||||
<target state="needs-review-translation">ASP.NET Core
|
||||
------------
|
||||
已安裝 ASP.NET Core HTTPS 開發憑證。如需詳細資訊,請前往 https://go.microsoft.com/fwlink/?linkid=84805</target>
|
||||
<note />
|
||||
|
|
|
@ -47,5 +47,10 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
|
||||
public void Delete(string path, bool recursive)
|
||||
{
|
||||
Directory.Delete(path, recursive);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,5 +45,10 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
{
|
||||
File.WriteAllText(path, content);
|
||||
}
|
||||
|
||||
public void Delete(string path)
|
||||
{
|
||||
File.Delete(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,5 +16,7 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
string GetDirectoryFullName(string path);
|
||||
|
||||
void CreateDirectory(string path);
|
||||
|
||||
void Delete(string path, bool recursive);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,5 +24,7 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
|
|||
void CreateEmptyFile(string path);
|
||||
|
||||
void WriteAllText(string path, string content);
|
||||
|
||||
void Delete(string path);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ using System.Runtime.CompilerServices;
|
|||
[assembly: InternalsVisibleTo("Microsoft.Extensions.DependencyModel, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("dotnet, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Tests.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Tests.ComponentMocks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.Extensions.DependencyModel.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Configurer, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Configurer.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
|
@ -15,3 +16,5 @@ using System.Runtime.CompilerServices;
|
|||
[assembly: InternalsVisibleTo("dotnet-test.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100039ac461fa5c82c7dd2557400c4fd4e9dcdf7ac47e3d572548c04cd4673e004916610f4ea5cbf86f2b1ca1cb824f2a7b3976afecfcf4eb72d9a899aa6786effa10c30399e6580ed848231fec48374e41b3acf8811931343fc2f73acf72dae745adbcb7063cc4b50550618383202875223fc75401351cd89c44bf9b50e7fa3796")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Test, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.ShellShim.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.ToolPackage.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("dotnet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<PackageReference Include="NETStandard.Library" Version="1.6.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="ResolveHostfxrCopyLocalContent" Condition="'$(TargetFramework)' == 'net46'" DependsOnTargets="ResolvePackageDependenciesForBuild" BeforeTargets="AssignTargetPaths">
|
||||
<Target Name="ResolveHostfxrCopyLocalContent" Condition="'$(TargetFramework)' == 'net46'" DependsOnTargets="RunResolvePackageDependencies" BeforeTargets="AssignTargetPaths">
|
||||
<ItemGroup>
|
||||
<Content Include="@(FileDefinitions->'%(ResolvedPath)')" Condition="'%(FileDefinitions.Path)' == 'runtimes/win-x86/native/hostfxr.dll'">
|
||||
<Link>x86/hostfxr.dll</Link>
|
||||
|
|
|
@ -520,28 +520,26 @@
|
|||
<data name="NoRestoreDescription" xml:space="preserve">
|
||||
<value>Does not do an implicit restore when executing the command.</value>
|
||||
</data>
|
||||
<data name="CannotBeNullOrWhitespace" xml:space="preserve">
|
||||
<value>Cannot be null or whitespace.</value>
|
||||
</data>
|
||||
<data name="ContainInvalidCharacters" xml:space="preserve">
|
||||
<value>Contains one or more invalid characters: {0}</value>
|
||||
</data>
|
||||
<data name="NuGetConfigurationFileDoesNotExist" xml:space="preserve">
|
||||
<value>NuGet configuration file {0} does not exist.</value>
|
||||
</data>
|
||||
<data name="ToolSettingInvalidRunner" xml:space="preserve">
|
||||
<value>The tool's settings file has non "dotnet" as runner.</value>
|
||||
</data>
|
||||
<data name="ToolSettingMoreThanOneCommand" xml:space="preserve">
|
||||
<value>The tool's settings file has more than one command defined.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsContainError" xml:space="preserve">
|
||||
<value>The tool's settings file contains error.
|
||||
{0}</value>
|
||||
</data>
|
||||
<data name="ToolSettingsInvalidXml" xml:space="preserve">
|
||||
<value>The tool's settings file is invalid xml.
|
||||
{0}</value>
|
||||
<value>Invalid XML: {0}</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMissingCommandName" xml:space="preserve">
|
||||
<value>Tool defines a command with a missing name setting.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMissingEntryPoint" xml:space="preserve">
|
||||
<value>Command '{0}' is missing an entry point setting.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsInvalidCommandName" xml:space="preserve">
|
||||
<value>Command '{0}' contains one or more of the following invalid characters: {1}.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsMoreThanOneCommand" xml:space="preserve">
|
||||
<value>More than one command is defined for the tool.</value>
|
||||
</data>
|
||||
<data name="ToolSettingsUnsupportedRunner" xml:space="preserve">
|
||||
<value>Command '{0}' uses unsupported runner '{1}'."</value>
|
||||
</data>
|
||||
<data name="EnvironmentPathLinuxManualInstruction" xml:space="preserve">
|
||||
<value>Cannot find the tools executable path. Please ensure {0} is added to your PATH.
|
||||
|
@ -584,4 +582,13 @@ Output: {1}</value>
|
|||
<data name="FailInstallToolSameName" xml:space="preserve">
|
||||
<value>Failed to install tool {0}. A command with the same name already exists.</value>
|
||||
</data>
|
||||
</root>
|
||||
<data name="ToolPackageMissingEntryPointFile" xml:space="preserve">
|
||||
<value>Package '{0}' is missing entry point file {1}.</value>
|
||||
</data>
|
||||
<data name="ToolPackageMissingSettingsFile" xml:space="preserve">
|
||||
<value>Package '{0}' is missing tool settings file DotnetToolSettings.xml.</value>
|
||||
</data>
|
||||
<data name="ToolPackageConflictPackageId" xml:space="preserve">
|
||||
<value>Tool '{0}' is already installed.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
@ -17,5 +17,7 @@ using System.Runtime.CompilerServices;
|
|||
[assembly: InternalsVisibleTo("dotnet-sln-remove.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("dotnet-msbuild.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("dotnet-run.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Tests.Utilities, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.Tools.Tests.ComponentMocks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.ToolPackage.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
[assembly: InternalsVisibleTo("Microsoft.DotNet.ShellShim.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
|
||||
|
|
52
src/dotnet/ShellShim/CreateShimTransaction.cs
Normal file
52
src/dotnet/ShellShim/CreateShimTransaction.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
// 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.Transactions;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim
|
||||
{
|
||||
internal class CreateShimTransaction : IEnlistmentNotification
|
||||
{
|
||||
private readonly Action<List<FilePath>> _createShim;
|
||||
private readonly Action<List<FilePath>> _rollback;
|
||||
private List<FilePath> _locationOfShimDuringTransaction = new List<FilePath>();
|
||||
|
||||
public CreateShimTransaction(
|
||||
Action<List<FilePath>> createShim,
|
||||
Action<List<FilePath>> rollback)
|
||||
{
|
||||
_createShim = createShim ?? throw new ArgumentNullException(nameof(createShim));
|
||||
_rollback = rollback ?? throw new ArgumentNullException(nameof(rollback));
|
||||
}
|
||||
|
||||
public void CreateShim()
|
||||
{
|
||||
_createShim(_locationOfShimDuringTransaction);
|
||||
}
|
||||
|
||||
public void Commit(Enlistment enlistment)
|
||||
{
|
||||
enlistment.Done();
|
||||
}
|
||||
|
||||
public void InDoubt(Enlistment enlistment)
|
||||
{
|
||||
Rollback(enlistment);
|
||||
}
|
||||
|
||||
public void Prepare(PreparingEnlistment preparingEnlistment)
|
||||
{
|
||||
preparingEnlistment.Done();
|
||||
}
|
||||
|
||||
public void Rollback(Enlistment enlistment)
|
||||
{
|
||||
_rollback(_locationOfShimDuringTransaction);
|
||||
|
||||
enlistment.Done();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -32,20 +32,20 @@ namespace Microsoft.DotNet.ShellShim
|
|||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
environmentPath = new WindowsEnvironmentPath(
|
||||
cliFolderPathCalculator.ExecutablePackagesPath,
|
||||
cliFolderPathCalculator.ToolsShimPath,
|
||||
Reporter.Output);
|
||||
}
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) && hasSuperUserAccess)
|
||||
{
|
||||
environmentPath = new LinuxEnvironmentPath(
|
||||
cliFolderPathCalculator.ExecutablePackagesPathInUnix,
|
||||
cliFolderPathCalculator.ToolsShimPathInUnix,
|
||||
Reporter.Output,
|
||||
environmentProvider, new FileWrapper());
|
||||
}
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX) && hasSuperUserAccess)
|
||||
{
|
||||
environmentPath = new OSXEnvironmentPath(
|
||||
executablePath: cliFolderPathCalculator.ExecutablePackagesPathInUnix,
|
||||
executablePath: cliFolderPathCalculator.ToolsShimPathInUnix,
|
||||
reporter: Reporter.Output,
|
||||
environmentProvider: environmentProvider,
|
||||
fileSystem: new FileWrapper());
|
||||
|
|
10
src/dotnet/ShellShim/IShellShimMaker.cs
Normal file
10
src/dotnet/ShellShim/IShellShimMaker.cs
Normal file
|
@ -0,0 +1,10 @@
|
|||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim
|
||||
{
|
||||
public interface IShellShimMaker
|
||||
{
|
||||
void CreateShim(FilePath packageExecutable, string shellCommandName);
|
||||
void EnsureCommandNameUniqueness(string shellCommandName);
|
||||
}
|
||||
}
|
|
@ -2,50 +2,101 @@
|
|||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Transactions;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ShellShim
|
||||
{
|
||||
public class ShellShimMaker
|
||||
public class ShellShimMaker : IShellShimMaker
|
||||
{
|
||||
private const string LauncherExeResourceName = "Microsoft.DotNet.Tools.Launcher.Executable";
|
||||
private const string LauncherConfigResourceName = "Microsoft.DotNet.Tools.Launcher.Config";
|
||||
|
||||
private readonly string _pathToPlaceShim;
|
||||
|
||||
public ShellShimMaker(string pathToPlaceShim)
|
||||
{
|
||||
_pathToPlaceShim =
|
||||
pathToPlaceShim ?? throw new ArgumentNullException(nameof(pathToPlaceShim));
|
||||
_pathToPlaceShim = pathToPlaceShim ?? throw new ArgumentNullException(nameof(pathToPlaceShim));
|
||||
}
|
||||
|
||||
public void CreateShim(string packageExecutablePath, string shellCommandName)
|
||||
public void CreateShim(FilePath packageExecutable, string shellCommandName)
|
||||
{
|
||||
var packageExecutable = new FilePath(packageExecutablePath);
|
||||
var createShimTransaction = new CreateShimTransaction(
|
||||
createShim: locationOfShimDuringTransaction =>
|
||||
{
|
||||
EnsureCommandNameUniqueness(shellCommandName);
|
||||
PlaceShim(packageExecutable, shellCommandName, locationOfShimDuringTransaction);
|
||||
},
|
||||
rollback: locationOfShimDuringTransaction =>
|
||||
{
|
||||
foreach (FilePath f in locationOfShimDuringTransaction)
|
||||
{
|
||||
if (File.Exists(f.Value))
|
||||
{
|
||||
File.Delete(f.Value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
using (var transactionScope = new TransactionScope())
|
||||
{
|
||||
Transaction.Current.EnlistVolatile(createShimTransaction, EnlistmentOptions.None);
|
||||
createShimTransaction.CreateShim();
|
||||
|
||||
transactionScope.Complete();
|
||||
}
|
||||
}
|
||||
|
||||
private void PlaceShim(FilePath packageExecutable, string shellCommandName, List<FilePath> locationOfShimDuringTransaction)
|
||||
{
|
||||
FilePath shimPath = GetShimPath(shellCommandName);
|
||||
|
||||
if (!Directory.Exists(shimPath.GetDirectoryPath().Value))
|
||||
{
|
||||
Directory.CreateDirectory(shimPath.GetDirectoryPath().Value);
|
||||
}
|
||||
|
||||
var script = new StringBuilder();
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
script.AppendLine("@echo off");
|
||||
script.AppendLine($"dotnet {packageExecutable.ToQuotedString()} %*");
|
||||
FilePath windowsConfig = GetWindowsConfigPath(shellCommandName);
|
||||
CreateConfigFile(
|
||||
windowsConfig,
|
||||
entryPoint: packageExecutable,
|
||||
runner: "dotnet");
|
||||
|
||||
locationOfShimDuringTransaction.Add(windowsConfig);
|
||||
|
||||
using (var shim = File.Create(shimPath.Value))
|
||||
using (var exe = typeof(ShellShimMaker).Assembly.GetManifestResourceStream(LauncherExeResourceName))
|
||||
{
|
||||
exe.CopyTo(shim);
|
||||
}
|
||||
locationOfShimDuringTransaction.Add(shimPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
var script = new StringBuilder();
|
||||
script.AppendLine("#!/bin/sh");
|
||||
script.AppendLine($"dotnet {packageExecutable.ToQuotedString()} \"$@\"");
|
||||
|
||||
File.WriteAllText(shimPath.Value, script.ToString());
|
||||
locationOfShimDuringTransaction.Add(shimPath);
|
||||
|
||||
SetUserExecutionPermissionToShimFile(shimPath);
|
||||
}
|
||||
|
||||
FilePath scriptPath = GetScriptPath(shellCommandName);
|
||||
File.WriteAllText(scriptPath.Value, script.ToString());
|
||||
|
||||
SetUserExecutionPermissionToShimFile(scriptPath);
|
||||
}
|
||||
|
||||
public void EnsureCommandNameUniqueness(string shellCommandName)
|
||||
{
|
||||
if (File.Exists(Path.Combine(_pathToPlaceShim, shellCommandName)))
|
||||
if (File.Exists(GetShimPath(shellCommandName).Value))
|
||||
{
|
||||
throw new GracefulException(
|
||||
string.Format(CommonLocalizableStrings.FailInstallToolSameName,
|
||||
|
@ -53,28 +104,53 @@ namespace Microsoft.DotNet.ShellShim
|
|||
}
|
||||
}
|
||||
|
||||
public void Remove(string shellCommandName)
|
||||
internal void CreateConfigFile(FilePath outputPath, FilePath entryPoint, string runner)
|
||||
{
|
||||
File.Delete(GetScriptPath(shellCommandName).Value);
|
||||
XDocument config;
|
||||
using(var resource = typeof(ShellShimMaker).Assembly.GetManifestResourceStream(LauncherConfigResourceName))
|
||||
{
|
||||
config = XDocument.Load(resource);
|
||||
}
|
||||
|
||||
var appSettings = config.Descendants("appSettings").First();
|
||||
appSettings.Add(new XElement("add", new XAttribute("key", "entryPoint"), new XAttribute("value", entryPoint.Value)));
|
||||
appSettings.Add(new XElement("add", new XAttribute("key", "runner"), new XAttribute("value", runner ?? string.Empty)));
|
||||
config.Save(outputPath.Value);
|
||||
}
|
||||
|
||||
private FilePath GetScriptPath(string shellCommandName)
|
||||
public void Remove(string shellCommandName)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
File.Delete(GetWindowsConfigPath(shellCommandName).Value);
|
||||
}
|
||||
|
||||
File.Delete(GetShimPath(shellCommandName).Value);
|
||||
}
|
||||
|
||||
private FilePath GetShimPath(string shellCommandName)
|
||||
{
|
||||
var scriptPath = Path.Combine(_pathToPlaceShim, shellCommandName);
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
scriptPath += ".cmd";
|
||||
scriptPath += ".exe";
|
||||
}
|
||||
|
||||
return new FilePath(scriptPath);
|
||||
}
|
||||
|
||||
private FilePath GetWindowsConfigPath(string shellCommandName)
|
||||
{
|
||||
return new FilePath(GetShimPath(shellCommandName).Value + ".config");
|
||||
}
|
||||
|
||||
private static void SetUserExecutionPermissionToShimFile(FilePath scriptPath)
|
||||
{
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) return;
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
return;
|
||||
|
||||
CommandResult result = new CommandFactory()
|
||||
.Create("chmod", new[] {"u+x", scriptPath.Value})
|
||||
.Create("chmod", new[] { "u+x", scriptPath.Value })
|
||||
.CaptureStdOut()
|
||||
.CaptureStdErr()
|
||||
.Execute();
|
||||
|
|
|
@ -1,12 +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 Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal interface IPackageToProjectFileAdder
|
||||
{
|
||||
void Add(FilePath projectPath, string packageId);
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
// 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.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
|
@ -11,6 +12,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
FilePath projectPath,
|
||||
DirectoryPath assetJsonOutput,
|
||||
FilePath? nugetconfig,
|
||||
string source);
|
||||
string source,
|
||||
string verbosity);
|
||||
}
|
||||
}
|
||||
|
|
19
src/dotnet/ToolPackage/IToolPackageObtainer.cs
Normal file
19
src/dotnet/ToolPackage/IToolPackageObtainer.cs
Normal file
|
@ -0,0 +1,19 @@
|
|||
// 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.Collections.Generic;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal interface IToolPackageObtainer
|
||||
{
|
||||
ToolConfigurationAndExecutablePath ObtainAndReturnExecutablePath(
|
||||
string packageId,
|
||||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null,
|
||||
string verbosity = null);
|
||||
}
|
||||
}
|
57
src/dotnet/ToolPackage/LockFileMatchChecker.cs
Normal file
57
src/dotnet/ToolPackage/LockFileMatchChecker.cs
Normal file
|
@ -0,0 +1,57 @@
|
|||
// 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.Linq;
|
||||
using NuGet.ProjectModel;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class LockFileMatcher
|
||||
{
|
||||
/// <summary>
|
||||
/// Check if LockFileItem matches the targetRelativeFilePath.
|
||||
/// The path in LockFileItem is in pattern tools/TFM/RID/my/tool.dll. Tools/TFM/RID is selected by NuGet.
|
||||
/// And there will be only one TFM/RID combination.
|
||||
/// When "my/tools.dll" part matches exactly with the targetRelativeFilePath, return true.
|
||||
/// </summary>
|
||||
/// <param name="lockFileItem">LockFileItem from asset.json restored from temp project</param>
|
||||
/// <param name="targetRelativeFilePath">file path relative to tools/TFM/RID</param>
|
||||
internal static bool MatchesFile(LockFileItem lockFileItem, string targetRelativeFilePath)
|
||||
{
|
||||
string[] pathInLockFilePathInArray = SplitPathByDirectorySeparator(lockFileItem.Path);
|
||||
string[] entryPointPathInArray = SplitPathByDirectorySeparator(targetRelativeFilePath);
|
||||
|
||||
return entryPointPathInArray.Length >= 1
|
||||
&& PathInLockFileDirectoriesStartWithToolsAndFollowsTwoSubFolder()
|
||||
&& SubPathMatchesTargetFilePath();
|
||||
|
||||
bool SubPathMatchesTargetFilePath()
|
||||
{
|
||||
string[] pathAfterToolsTfmRid = pathInLockFilePathInArray.Skip(3).ToArray();
|
||||
return !pathAfterToolsTfmRid
|
||||
.Where((directoryOnEveryLevel, i) => directoryOnEveryLevel != entryPointPathInArray[i])
|
||||
.Any();
|
||||
}
|
||||
|
||||
bool PathInLockFileDirectoriesStartWithToolsAndFollowsTwoSubFolder()
|
||||
{
|
||||
if (pathInLockFilePathInArray.Length - entryPointPathInArray.Length != 3)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (pathInLockFilePathInArray[0] != "tools")
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
string[] SplitPathByDirectorySeparator(string path)
|
||||
{
|
||||
return path.Split('\\', '/');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using Microsoft.DotNet.Tools;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
|
@ -15,33 +16,36 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
{
|
||||
if (string.IsNullOrWhiteSpace(commandName))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(commandName), CommonLocalizableStrings.CannotBeNullOrWhitespace);
|
||||
throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMissingCommandName);
|
||||
}
|
||||
|
||||
EnsureNoInvalidFilenameCharacters(commandName, nameof(toolAssemblyEntryPoint));
|
||||
|
||||
if (string.IsNullOrWhiteSpace(toolAssemblyEntryPoint))
|
||||
{
|
||||
throw new ArgumentNullException(nameof(toolAssemblyEntryPoint), CommonLocalizableStrings.CannotBeNullOrWhitespace);
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsMissingEntryPoint,
|
||||
commandName));
|
||||
}
|
||||
|
||||
EnsureNoInvalidFilenameCharacters(commandName);
|
||||
|
||||
CommandName = commandName;
|
||||
ToolAssemblyEntryPoint = toolAssemblyEntryPoint;
|
||||
}
|
||||
|
||||
private void EnsureNoInvalidFilenameCharacters(string commandName, string nameOfParam)
|
||||
private void EnsureNoInvalidFilenameCharacters(string commandName)
|
||||
{
|
||||
char[] invalidCharactors = Path.GetInvalidFileNameChars();
|
||||
if (commandName.IndexOfAny(invalidCharactors) != -1)
|
||||
var invalidCharacters = Path.GetInvalidFileNameChars();
|
||||
if (commandName.IndexOfAny(invalidCharacters) != -1)
|
||||
{
|
||||
throw new ArgumentException(
|
||||
paramName: nameof(nameOfParam),
|
||||
message: string.Format(CommonLocalizableStrings.ContainInvalidCharacters,
|
||||
new string(invalidCharactors)));
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsInvalidCommandName,
|
||||
commandName,
|
||||
string.Join(", ", invalidCharacters.Select(c => $"'{c}'"))));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string CommandName { get; }
|
||||
public string ToolAssemblyEntryPoint { get; }
|
||||
}
|
||||
|
|
|
@ -5,17 +5,18 @@ using Microsoft.Extensions.EnvironmentAbstractions;
|
|||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class ToolConfigurationAndExecutableDirectory
|
||||
internal class ToolConfigurationAndExecutablePath
|
||||
{
|
||||
public ToolConfigurationAndExecutableDirectory(
|
||||
public ToolConfigurationAndExecutablePath(
|
||||
ToolConfiguration toolConfiguration,
|
||||
DirectoryPath executableDirectory)
|
||||
FilePath executable)
|
||||
{
|
||||
Configuration = toolConfiguration;
|
||||
ExecutableDirectory = executableDirectory;
|
||||
Executable = executable;
|
||||
}
|
||||
|
||||
public ToolConfiguration Configuration { get; }
|
||||
public DirectoryPath ExecutableDirectory { get; }
|
||||
|
||||
public FilePath Executable { get; }
|
||||
}
|
||||
}
|
|
@ -29,35 +29,29 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
catch (InvalidOperationException e) when (e.InnerException is XmlException)
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(CommonLocalizableStrings.ToolSettingsInvalidXml, e.InnerException.Message));
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsInvalidXml,
|
||||
e.InnerException.Message));
|
||||
}
|
||||
}
|
||||
|
||||
if (dotNetCliTool.Commands.Length != 1)
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
CommonLocalizableStrings.ToolSettingMoreThanOneCommand);
|
||||
throw new ToolConfigurationException(CommonLocalizableStrings.ToolSettingsMoreThanOneCommand);
|
||||
}
|
||||
|
||||
if (dotNetCliTool.Commands[0].Runner != "dotnet")
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
CommonLocalizableStrings.ToolSettingInvalidRunner);
|
||||
string.Format(
|
||||
CommonLocalizableStrings.ToolSettingsUnsupportedRunner,
|
||||
dotNetCliTool.Commands[0].Name,
|
||||
dotNetCliTool.Commands[0].Runner));
|
||||
}
|
||||
|
||||
var commandName = dotNetCliTool.Commands[0].Name;
|
||||
var toolAssemblyEntryPoint = dotNetCliTool.Commands[0].EntryPoint;
|
||||
|
||||
try
|
||||
{
|
||||
return new ToolConfiguration(commandName, toolAssemblyEntryPoint);
|
||||
}
|
||||
catch (ArgumentException e)
|
||||
{
|
||||
throw new ToolConfigurationException(
|
||||
string.Format(CommonLocalizableStrings.ToolSettingsContainError,
|
||||
e.Message));
|
||||
}
|
||||
return new ToolConfiguration(
|
||||
dotNetCliTool.Commands[0].Name,
|
||||
dotNetCliTool.Commands[0].EntryPoint);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
52
src/dotnet/ToolPackage/ToolPackageObtainTransaction.cs
Normal file
52
src/dotnet/ToolPackage/ToolPackageObtainTransaction.cs
Normal file
|
@ -0,0 +1,52 @@
|
|||
// 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.Transactions;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class ToolPackageObtainTransaction : IEnlistmentNotification
|
||||
{
|
||||
private readonly Func<List<DirectoryPath>, ToolConfigurationAndExecutablePath> _obtainAndReturnExecutablePath;
|
||||
private readonly Action<List<DirectoryPath>> _rollback;
|
||||
private List<DirectoryPath> _locationOfPackageDuringTransaction = new List<DirectoryPath>();
|
||||
|
||||
public ToolPackageObtainTransaction(
|
||||
Func<List<DirectoryPath>, ToolConfigurationAndExecutablePath> obtainAndReturnExecutablePath,
|
||||
Action<List<DirectoryPath>> rollback)
|
||||
{
|
||||
_obtainAndReturnExecutablePath = obtainAndReturnExecutablePath ?? throw new ArgumentNullException(nameof(obtainAndReturnExecutablePath));
|
||||
_rollback = rollback ?? throw new ArgumentNullException(nameof(rollback));
|
||||
}
|
||||
|
||||
public ToolConfigurationAndExecutablePath ObtainAndReturnExecutablePath()
|
||||
{
|
||||
return _obtainAndReturnExecutablePath(_locationOfPackageDuringTransaction);
|
||||
}
|
||||
|
||||
public void Commit(Enlistment enlistment)
|
||||
{
|
||||
enlistment.Done();
|
||||
}
|
||||
|
||||
public void InDoubt(Enlistment enlistment)
|
||||
{
|
||||
Rollback(enlistment);
|
||||
}
|
||||
|
||||
public void Prepare(PreparingEnlistment preparingEnlistment)
|
||||
{
|
||||
preparingEnlistment.Done();
|
||||
}
|
||||
|
||||
public void Rollback(Enlistment enlistment)
|
||||
{
|
||||
_rollback(_locationOfPackageDuringTransaction);
|
||||
|
||||
enlistment.Done();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,43 +1,109 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Transactions;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools;
|
||||
using Microsoft.Extensions.EnvironmentAbstractions;
|
||||
using NuGet.ProjectModel;
|
||||
|
||||
namespace Microsoft.DotNet.ToolPackage
|
||||
{
|
||||
internal class ToolPackageObtainer
|
||||
internal class ToolPackageObtainer : IToolPackageObtainer
|
||||
{
|
||||
private readonly Lazy<string> _bundledTargetFrameworkMoniker;
|
||||
private readonly Func<FilePath> _getTempProjectPath;
|
||||
private readonly IPackageToProjectFileAdder _packageToProjectFileAdder;
|
||||
private readonly IProjectRestorer _projectRestorer;
|
||||
private readonly DirectoryPath _toolsPath;
|
||||
private readonly DirectoryPath _offlineFeedPath;
|
||||
|
||||
public ToolPackageObtainer(
|
||||
DirectoryPath toolsPath,
|
||||
DirectoryPath offlineFeedPath,
|
||||
Func<FilePath> getTempProjectPath,
|
||||
Lazy<string> bundledTargetFrameworkMoniker,
|
||||
IPackageToProjectFileAdder packageToProjectFileAdder,
|
||||
IProjectRestorer projectRestorer
|
||||
)
|
||||
{
|
||||
_getTempProjectPath = getTempProjectPath;
|
||||
_bundledTargetFrameworkMoniker = bundledTargetFrameworkMoniker;
|
||||
_projectRestorer = projectRestorer ?? throw new ArgumentNullException(nameof(projectRestorer));
|
||||
_packageToProjectFileAdder = packageToProjectFileAdder ??
|
||||
throw new ArgumentNullException(nameof(packageToProjectFileAdder));
|
||||
_toolsPath = toolsPath;
|
||||
_offlineFeedPath = offlineFeedPath;
|
||||
}
|
||||
|
||||
public ToolConfigurationAndExecutableDirectory ObtainAndReturnExecutablePath(
|
||||
public ToolConfigurationAndExecutablePath ObtainAndReturnExecutablePath(
|
||||
string packageId,
|
||||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null)
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
var stageDirectory = _toolsPath.WithSubDirectories(".stage", Path.GetRandomFileName());
|
||||
|
||||
var toolPackageObtainTransaction = new ToolPackageObtainTransaction(
|
||||
obtainAndReturnExecutablePath: (locationOfPackageDuringTransaction) =>
|
||||
{
|
||||
if (Directory.Exists(_toolsPath.WithSubDirectories(packageId).Value))
|
||||
{
|
||||
throw new PackageObtainException(
|
||||
string.Format(CommonLocalizableStrings.ToolPackageConflictPackageId, packageId));
|
||||
}
|
||||
|
||||
locationOfPackageDuringTransaction.Add(stageDirectory);
|
||||
var toolConfigurationAndExecutablePath = ObtainAndReturnExecutablePathInStageFolder(
|
||||
packageId,
|
||||
stageDirectory,
|
||||
packageVersion,
|
||||
nugetconfig,
|
||||
targetframework,
|
||||
source,
|
||||
verbosity);
|
||||
|
||||
DirectoryPath destinationDirectory = _toolsPath.WithSubDirectories(packageId);
|
||||
|
||||
Directory.Move(
|
||||
stageDirectory.Value,
|
||||
destinationDirectory.Value);
|
||||
|
||||
locationOfPackageDuringTransaction.Clear();
|
||||
locationOfPackageDuringTransaction.Add(destinationDirectory);
|
||||
|
||||
return toolConfigurationAndExecutablePath;
|
||||
},
|
||||
rollback: (locationOfPackageDuringTransaction) =>
|
||||
{
|
||||
foreach (DirectoryPath l in locationOfPackageDuringTransaction)
|
||||
{
|
||||
if (Directory.Exists(l.Value))
|
||||
{
|
||||
Directory.Delete(l.Value, recursive: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
using (var transactionScope = new TransactionScope())
|
||||
{
|
||||
Transaction.Current.EnlistVolatile(toolPackageObtainTransaction, EnlistmentOptions.None);
|
||||
var toolConfigurationAndExecutablePath = toolPackageObtainTransaction.ObtainAndReturnExecutablePath();
|
||||
|
||||
transactionScope.Complete();
|
||||
return toolConfigurationAndExecutablePath;
|
||||
}
|
||||
}
|
||||
|
||||
private ToolConfigurationAndExecutablePath ObtainAndReturnExecutablePathInStageFolder(
|
||||
string packageId,
|
||||
DirectoryPath stageDirectory,
|
||||
string packageVersion = null,
|
||||
FilePath? nugetconfig = null,
|
||||
string targetframework = null,
|
||||
string source = null,
|
||||
string verbosity = null)
|
||||
{
|
||||
if (packageId == null)
|
||||
{
|
||||
|
@ -50,7 +116,7 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
{
|
||||
throw new PackageObtainException(
|
||||
string.Format(CommonLocalizableStrings.NuGetConfigurationFileDoesNotExist,
|
||||
Path.GetFullPath(nugetconfig.Value.Value)));
|
||||
Path.GetFullPath(nugetconfig.Value.Value)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -61,50 +127,80 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
|
||||
var packageVersionOrPlaceHolder = new PackageVersion(packageVersion);
|
||||
|
||||
DirectoryPath toolDirectory =
|
||||
CreateIndividualToolVersionDirectory(packageId, packageVersionOrPlaceHolder);
|
||||
DirectoryPath nugetSandboxDirectory =
|
||||
CreateNugetSandboxDirectory(packageVersionOrPlaceHolder, stageDirectory);
|
||||
|
||||
FilePath tempProjectPath = CreateTempProject(
|
||||
packageId,
|
||||
packageVersionOrPlaceHolder,
|
||||
targetframework,
|
||||
toolDirectory);
|
||||
nugetSandboxDirectory);
|
||||
|
||||
if (packageVersionOrPlaceHolder.IsPlaceholder)
|
||||
{
|
||||
InvokeAddPackageRestore(
|
||||
nugetconfig,
|
||||
tempProjectPath,
|
||||
packageId);
|
||||
}
|
||||
|
||||
_projectRestorer.Restore(tempProjectPath, toolDirectory, nugetconfig, source);
|
||||
_projectRestorer.Restore(tempProjectPath, nugetSandboxDirectory, nugetconfig, source, verbosity);
|
||||
|
||||
if (packageVersionOrPlaceHolder.IsPlaceholder)
|
||||
{
|
||||
var concreteVersion =
|
||||
new DirectoryInfo(
|
||||
Directory.GetDirectories(
|
||||
toolDirectory.WithSubDirectories(packageId).Value).Single()).Name;
|
||||
nugetSandboxDirectory.WithSubDirectories(packageId).Value).Single()).Name;
|
||||
DirectoryPath versioned =
|
||||
toolDirectory.GetParentPath().WithSubDirectories(concreteVersion);
|
||||
nugetSandboxDirectory.GetParentPath().WithSubDirectories(concreteVersion);
|
||||
|
||||
MoveToVersionedDirectory(versioned, toolDirectory);
|
||||
MoveToVersionedDirectory(versioned, nugetSandboxDirectory);
|
||||
|
||||
toolDirectory = versioned;
|
||||
nugetSandboxDirectory = versioned;
|
||||
packageVersion = concreteVersion;
|
||||
}
|
||||
|
||||
ToolConfiguration toolConfiguration = GetConfiguration(packageId: packageId, packageVersion: packageVersion, individualToolVersion: toolDirectory);
|
||||
LockFile lockFile = new LockFileFormat()
|
||||
.ReadWithLock(nugetSandboxDirectory.WithFile("project.assets.json").Value)
|
||||
.Result;
|
||||
|
||||
return new ToolConfigurationAndExecutableDirectory(
|
||||
LockFileItem dotnetToolSettings = FindAssetInLockFile(lockFile, "DotnetToolSettings.xml", packageId);
|
||||
|
||||
if (dotnetToolSettings == null)
|
||||
{
|
||||
throw new PackageObtainException(
|
||||
string.Format(CommonLocalizableStrings.ToolPackageMissingSettingsFile, packageId));
|
||||
}
|
||||
|
||||
FilePath toolConfigurationPath =
|
||||
nugetSandboxDirectory
|
||||
.WithSubDirectories(packageId, packageVersion)
|
||||
.WithFile(dotnetToolSettings.Path);
|
||||
|
||||
ToolConfiguration toolConfiguration =
|
||||
ToolConfigurationDeserializer.Deserialize(toolConfigurationPath.Value);
|
||||
|
||||
var entryPointFromLockFile =
|
||||
FindAssetInLockFile(lockFile, toolConfiguration.ToolAssemblyEntryPoint, packageId);
|
||||
|
||||
if (entryPointFromLockFile == null)
|
||||
{
|
||||
throw new PackageObtainException(string.Format(CommonLocalizableStrings.ToolPackageMissingEntryPointFile,
|
||||
packageId, toolConfiguration.ToolAssemblyEntryPoint));
|
||||
}
|
||||
|
||||
return new ToolConfigurationAndExecutablePath(
|
||||
toolConfiguration,
|
||||
toolDirectory.WithSubDirectories(
|
||||
packageId,
|
||||
packageVersion,
|
||||
"tools",
|
||||
targetframework,
|
||||
"any"));
|
||||
_toolsPath.WithSubDirectories(
|
||||
packageId,
|
||||
packageVersion,
|
||||
packageId,
|
||||
packageVersion)
|
||||
.WithFile(entryPointFromLockFile.Path));
|
||||
}
|
||||
|
||||
private static LockFileItem FindAssetInLockFile(
|
||||
LockFile lockFile,
|
||||
string targetRelativeFilePath, string packageId)
|
||||
{
|
||||
return lockFile
|
||||
.Targets?.SingleOrDefault(t => t.RuntimeIdentifier != null)
|
||||
?.Libraries?.SingleOrDefault(l => l.Name == packageId)
|
||||
?.ToolsAssemblies
|
||||
?.SingleOrDefault(t => LockFileMatcher.MatchesFile(t, targetRelativeFilePath));
|
||||
}
|
||||
|
||||
private static void MoveToVersionedDirectory(
|
||||
|
@ -119,22 +215,6 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
Directory.Move(temporary.Value, versioned.Value);
|
||||
}
|
||||
|
||||
private static ToolConfiguration GetConfiguration(
|
||||
string packageId,
|
||||
string packageVersion,
|
||||
DirectoryPath individualToolVersion)
|
||||
{
|
||||
FilePath toolConfigurationPath =
|
||||
individualToolVersion
|
||||
.WithSubDirectories(packageId, packageVersion, "tools")
|
||||
.WithFile("DotnetToolSettings.xml");
|
||||
|
||||
ToolConfiguration toolConfiguration =
|
||||
ToolConfigurationDeserializer.Deserialize(toolConfigurationPath.Value);
|
||||
|
||||
return toolConfiguration;
|
||||
}
|
||||
|
||||
private FilePath CreateTempProject(
|
||||
string packageId,
|
||||
PackageVersion packageVersion,
|
||||
|
@ -153,17 +233,23 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
new XAttribute("Sdk", "Microsoft.NET.Sdk"),
|
||||
new XElement("PropertyGroup",
|
||||
new XElement("TargetFramework", targetframework),
|
||||
new XElement("RestorePackagesPath", individualToolVersion.Value),
|
||||
new XElement("RestoreSolutionDirectory", Directory.GetCurrentDirectory()), // https://github.com/NuGet/Home/issues/6199
|
||||
new XElement("DisableImplicitFrameworkReferences", "true")
|
||||
),
|
||||
packageVersion.IsConcreteValue
|
||||
? new XElement("ItemGroup",
|
||||
new XElement("PackageReference",
|
||||
new XAttribute("Include", packageId),
|
||||
new XAttribute("Version", packageVersion.Value)
|
||||
))
|
||||
: null));
|
||||
new XElement("RestorePackagesPath", individualToolVersion.Value), // tool package will restore to tool folder
|
||||
new XElement("RestoreProjectStyle", "DotnetToolReference"), // without it, project cannot reference tool package
|
||||
new XElement("RestoreRootConfigDirectory", Directory.GetCurrentDirectory()), // config file probing start directory
|
||||
new XElement("DisableImplicitFrameworkReferences", "true"), // no Microsoft.NETCore.App in tool folder
|
||||
new XElement("RestoreFallbackFolders", "clear"), // do not use fallbackfolder, tool package need to be copied to tool folder
|
||||
new XElement("RestoreAdditionalProjectSources", // use fallbackfolder as feed to enable offline
|
||||
Directory.Exists(_offlineFeedPath.Value) ? _offlineFeedPath.Value : string.Empty),
|
||||
new XElement("RestoreAdditionalProjectFallbackFolders", string.Empty), // block other
|
||||
new XElement("RestoreAdditionalProjectFallbackFoldersExcludes", string.Empty), // block other
|
||||
new XElement("DisableImplicitNuGetFallbackFolder", "true")), // disable SDK side implicit NuGetFallbackFolder
|
||||
new XElement("ItemGroup",
|
||||
new XElement("PackageReference",
|
||||
new XAttribute("Include", packageId),
|
||||
new XAttribute("Version", packageVersion.IsConcreteValue ? packageVersion.Value : "*") // nuget will restore * for latest
|
||||
))
|
||||
));
|
||||
|
||||
|
||||
File.WriteAllText(tempProjectPath.Value,
|
||||
tempProjectContent.ToString());
|
||||
|
@ -171,30 +257,12 @@ namespace Microsoft.DotNet.ToolPackage
|
|||
return tempProjectPath;
|
||||
}
|
||||
|
||||
private void InvokeAddPackageRestore(
|
||||
FilePath? nugetconfig,
|
||||
FilePath tempProjectPath,
|
||||
string packageId)
|
||||
private DirectoryPath CreateNugetSandboxDirectory(
|
||||
PackageVersion packageVersion,
|
||||
DirectoryPath stageDirectory
|
||||
)
|
||||
{
|
||||
if (nugetconfig != null)
|
||||
{
|
||||
File.Copy(
|
||||
nugetconfig.Value.Value,
|
||||
tempProjectPath
|
||||
.GetDirectoryPath()
|
||||
.WithFile("nuget.config")
|
||||
.Value);
|
||||
}
|
||||
|
||||
_packageToProjectFileAdder.Add(tempProjectPath, packageId);
|
||||
}
|
||||
|
||||
private DirectoryPath CreateIndividualToolVersionDirectory(
|
||||
string packageId,
|
||||
PackageVersion packageVersion)
|
||||
{
|
||||
DirectoryPath individualTool = _toolsPath.WithSubDirectories(packageId);
|
||||
DirectoryPath individualToolVersion = individualTool.WithSubDirectories(packageVersion.Value);
|
||||
DirectoryPath individualToolVersion = stageDirectory.WithSubDirectories(packageVersion.Value);
|
||||
EnsureDirectoryExists(individualToolVersion);
|
||||
return individualToolVersion;
|
||||
}
|
||||
|
|
|
@ -268,6 +268,6 @@
|
|||
<value>Path to additional deps.json file.</value>
|
||||
</data>
|
||||
<data name="InstallDefinition" xml:space="preserve">
|
||||
<value>Add item to development environment.</value>
|
||||
<value>Installs an item into the development environment.</value>
|
||||
</data>
|
||||
</root>
|
||||
|
|
|
@ -199,12 +199,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="SDKListSdksCommandDefinition">
|
||||
<source>Display the installed SDKs.</source>
|
||||
<target state="new">Display the installed SDKs.</target>
|
||||
<target state="translated">Zobrazí nainstalované sady SDK.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKListRuntimesCommandDefinition">
|
||||
<source>Display the installed runtimes.</source>
|
||||
<target state="new">Display the installed runtimes.</target>
|
||||
<target state="translated">Zobrazí nainstalované moduly runtime.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKDiagnosticsCommandDefinition">
|
||||
|
@ -253,8 +253,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallDefinition">
|
||||
<source>Add item to development environment.</source>
|
||||
<target state="new">Add item to development environment.</target>
|
||||
<source>Installs an item into the development environment.</source>
|
||||
<target state="new">Installs an item into the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="PublishDefinition">
|
||||
<source>Publishes a .NET project for deployment (including the runtime).</source>
|
||||
<target state="translated">Veröffentlicht ein .NET-Projekt für die Bereitstellung (einschließlich Laufzeit).</target>
|
||||
<target state="translated">Veröffentlicht ein .NET-Projekt für die Bereitstellung (einschließlich Runtime).</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="RunDefinition">
|
||||
|
@ -199,12 +199,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="SDKListSdksCommandDefinition">
|
||||
<source>Display the installed SDKs.</source>
|
||||
<target state="new">Display the installed SDKs.</target>
|
||||
<target state="translated">Die installierten SDKs anzeigen.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKListRuntimesCommandDefinition">
|
||||
<source>Display the installed runtimes.</source>
|
||||
<target state="new">Display the installed runtimes.</target>
|
||||
<target state="translated">Die installierten Runtimes anzeigen.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKDiagnosticsCommandDefinition">
|
||||
|
@ -249,12 +249,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="StoreDefinition">
|
||||
<source>Stores the specified assemblies in the runtime store.</source>
|
||||
<target state="translated">Speichert die angegebenen Assemblys im Laufzeitspeicher.</target>
|
||||
<target state="translated">Speichert die angegebenen Assemblys im Runtimespeicher.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallDefinition">
|
||||
<source>Add item to development environment.</source>
|
||||
<target state="new">Add item to development environment.</target>
|
||||
<source>Installs an item into the development environment.</source>
|
||||
<target state="new">Installs an item into the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -199,12 +199,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="SDKListSdksCommandDefinition">
|
||||
<source>Display the installed SDKs.</source>
|
||||
<target state="new">Display the installed SDKs.</target>
|
||||
<target state="translated">Muestra los SDK instalados.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKListRuntimesCommandDefinition">
|
||||
<source>Display the installed runtimes.</source>
|
||||
<target state="new">Display the installed runtimes.</target>
|
||||
<target state="translated">Muestra los runtimes instalados.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKDiagnosticsCommandDefinition">
|
||||
|
@ -253,8 +253,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallDefinition">
|
||||
<source>Add item to development environment.</source>
|
||||
<target state="new">Add item to development environment.</target>
|
||||
<source>Installs an item into the development environment.</source>
|
||||
<target state="new">Installs an item into the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -199,12 +199,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="SDKListSdksCommandDefinition">
|
||||
<source>Display the installed SDKs.</source>
|
||||
<target state="new">Display the installed SDKs.</target>
|
||||
<target state="translated">Affichez les SDK installés.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKListRuntimesCommandDefinition">
|
||||
<source>Display the installed runtimes.</source>
|
||||
<target state="new">Display the installed runtimes.</target>
|
||||
<target state="translated">Affichez les runtimes installés.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKDiagnosticsCommandDefinition">
|
||||
|
@ -253,8 +253,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallDefinition">
|
||||
<source>Add item to development environment.</source>
|
||||
<target state="new">Add item to development environment.</target>
|
||||
<source>Installs an item into the development environment.</source>
|
||||
<target state="new">Installs an item into the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -199,12 +199,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="SDKListSdksCommandDefinition">
|
||||
<source>Display the installed SDKs.</source>
|
||||
<target state="new">Display the installed SDKs.</target>
|
||||
<target state="translated">Visualizza gli SDK installati.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKListRuntimesCommandDefinition">
|
||||
<source>Display the installed runtimes.</source>
|
||||
<target state="new">Display the installed runtimes.</target>
|
||||
<target state="translated">Visualizza i runtime installati.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKDiagnosticsCommandDefinition">
|
||||
|
@ -253,8 +253,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallDefinition">
|
||||
<source>Add item to development environment.</source>
|
||||
<target state="new">Add item to development environment.</target>
|
||||
<source>Installs an item into the development environment.</source>
|
||||
<target state="new">Installs an item into the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
|
@ -199,12 +199,12 @@
|
|||
</trans-unit>
|
||||
<trans-unit id="SDKListSdksCommandDefinition">
|
||||
<source>Display the installed SDKs.</source>
|
||||
<target state="new">Display the installed SDKs.</target>
|
||||
<target state="translated">インストール済み SDK を表示します。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKListRuntimesCommandDefinition">
|
||||
<source>Display the installed runtimes.</source>
|
||||
<target state="new">Display the installed runtimes.</target>
|
||||
<target state="translated">インストール済みランタイムを表示します。</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="SDKDiagnosticsCommandDefinition">
|
||||
|
@ -253,8 +253,8 @@
|
|||
<note />
|
||||
</trans-unit>
|
||||
<trans-unit id="InstallDefinition">
|
||||
<source>Add item to development environment.</source>
|
||||
<target state="new">Add item to development environment.</target>
|
||||
<source>Installs an item into the development environment.</source>
|
||||
<target state="new">Installs an item into the development environment.</target>
|
||||
<note />
|
||||
</trans-unit>
|
||||
</body>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue