Merge branch 'master' into master

This commit is contained in:
Livar 2018-02-08 16:39:20 -08:00 committed by GitHub
commit adfc2037db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
206 changed files with 5449 additions and 2647 deletions

View file

@ -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}

View file

@ -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).

View file

@ -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]}");
}
}
}
}
}

View file

@ -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>

View file

@ -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>

View file

@ -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"

View file

@ -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
View 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 sdk\*\microsoft.testplatform.vstestconsole.translationlayer.xml unsigned oss
2 sdk\*\sdks\nuget.build.tasks.pack\*\nuget.build.tasks.pack.xml unsigned oss
3 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js unsigned oss
4 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.js unsigned oss
5 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\additional-methods.min.js unsigned oss
6 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.js unsigned oss
7 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\bootstrap.min.js unsigned oss
8 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\glyphicons-halflings-regular.ttf unsigned oss
9 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.js unsigned oss
10 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.min.js unsigned oss
11 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.js unsigned oss
12 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.min.js unsigned oss
13 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.js unsigned oss
14 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\jquery.validate.unobtrusive.min.js unsigned oss
15 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\npm.js unsigned oss
16 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.js unsigned oss
17 sdk\*\templates\microsoft_dotnet_web_projecttemplates*nupkgdir\site.min.js unsigned oss
18 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.js unsigned oss
19 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\app.test.js unsigned oss
20 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\configurestore.js unsigned oss
21 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\counter.js unsigned oss
22 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\fetchdata.js unsigned oss
23 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\home.js unsigned oss
24 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\index.js unsigned oss
25 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\karma.conf.js unsigned oss
26 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\layout.js unsigned oss
27 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\navmenu.js unsigned oss
28 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\protractor.conf.js unsigned oss
29 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\registerserviceworker.js unsigned oss
30 sdk\*\templates\microsoft_dotnet_web_spa_projecttemplates*nupkgdir\weatherforecasts.js unsigned oss

View file

@ -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>

View file

@ -7,6 +7,5 @@
<BuildInfoProps>$(GeneratedPropsDir)/BuildInfo.props</BuildInfoProps>
<OrchestratedPackageVersionsProps>$(GeneratedPropsDir)/OrchestratedPackageVersionsProps.props</OrchestratedPackageVersionsProps>
<GeneratedNuGetConfig>$(RepoRoot)/NuGet.Config</GeneratedNuGetConfig>
</PropertyGroup>
</PropertyGroup>
</Project>

View file

@ -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>
]]>

View file

@ -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="&lt;add key=&quot;PrivateBlobFeed&quot; value=&quot;%(NugetConfigPrivateFeeds.Identity)&quot; /&gt;"

View file

@ -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>

View file

@ -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>

View file

@ -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&gt;&amp;1</PipeStderrToStdoutToCatchFirstFailure>

View file

@ -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;

View file

@ -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>

View file

@ -120,5 +120,4 @@
<GeneratedInstallers Include="$(SdkInstallerFile)" />
</ItemGroup>
</Target>
</Project>

View file

@ -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>

View file

@ -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/**/*" />

View file

@ -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>

View file

@ -15,6 +15,7 @@
<ArtifactsForGeneratingChecksums Include="@(ForPublishing)">
<DestinationPath>%(ForPublishing.FullPath).sha</DestinationPath>
<RelativeBlobPath>%(ForPublishing.RelativeBlobPath).sha</RelativeBlobPath>
<ManifestArtifactData>ShipInstaller=dotnetclichecksums</ManifestArtifactData>
</ArtifactsForGeneratingChecksums>
</ItemGroup>
</Target>

View file

@ -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)"

View file

@ -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>

View file

@ -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>

View file

@ -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" />

View file

@ -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" />

View file

@ -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>

View file

@ -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" />

View file

@ -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>

View file

@ -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;

View file

@ -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)

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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. &lt;A HREF=&quot;https://go.microsoft.com/fwlink/?linkid=866799&quot;&gt;Learn More&lt;/A&gt;.
</String>
</WixLocalization>

View file

@ -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" }
}

View file

@ -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

View file

@ -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

View file

@ -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 "$@"

View file

@ -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"

View file

@ -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"

View file

@ -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>

View file

@ -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; }

View file

@ -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">

View file

@ -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));
}
}

View file

@ -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>

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 dinformations, accédez à https://go.microsoft.com/fwlink/?linkid=84805</target>
<note />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -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 />

View file

@ -47,5 +47,10 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
{
Directory.CreateDirectory(path);
}
public void Delete(string path, bool recursive)
{
Directory.Delete(path, recursive);
}
}
}

View file

@ -45,5 +45,10 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
{
File.WriteAllText(path, content);
}
public void Delete(string path)
{
File.Delete(path);
}
}
}

View file

@ -16,5 +16,7 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
string GetDirectoryFullName(string path);
void CreateDirectory(string path);
void Delete(string path, bool recursive);
}
}

View file

@ -24,5 +24,7 @@ namespace Microsoft.Extensions.EnvironmentAbstractions
void CreateEmptyFile(string path);
void WriteAllText(string path, string content);
void Delete(string path);
}
}

View file

@ -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")]

View file

@ -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>

View file

@ -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>

View file

@ -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")]

View 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();
}
}
}

View file

@ -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());

View 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);
}
}

View file

@ -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();

View file

@ -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);
}
}

View file

@ -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);
}
}

View 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);
}
}

View 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('\\', '/');
}
}
}
}

View file

@ -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; }
}

View file

@ -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; }
}
}

View file

@ -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);
}
}
}

View 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();
}
}
}

View file

@ -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;
}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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