diff --git a/src/redist/targets/GenerateMSIs.targets b/src/redist/targets/GenerateMSIs.targets index 6b3f0833c..4f060e4e5 100644 --- a/src/redist/targets/GenerateMSIs.targets +++ b/src/redist/targets/GenerateMSIs.targets @@ -15,12 +15,15 @@ $(ArtifactsTmpDir)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)-engine.exe $(MSBuildThisFileDirectory)packaging/windows/clisdk/generatemsi.ps1 + $(MSBuildThisFileDirectory)packaging/windows/clisdk/generatesdkplaceholdermsi.ps1 $(MSBuildThisFileDirectory)packaging/windows/clisdk/stablefileidforapphosttransform.xslt $(MSBuildThisFileDirectory)packaging/windows/clisdk/generatebundle.ps1 $(MSBuildThisFileDirectory)packaging/windows/clisdk/generatenupkg.ps1 $(MSBuildThisFileDirectory)packaging/windows/clisdk/VS.Redist.Common.NetCore.Toolset.nuspec $(ArtifactsNonShippingPackagesDir)VS.Redist.Common.NetCore.Toolset.$(Architecture).$(FullNugetVersion).nupkg + $(MSBuildThisFileDirectory)packaging/windows/clisdk/VS.Redist.Common.NetCore.SdkPlaceholder.nuspec + $(ArtifactsNonShippingPackagesDir)VS.Redist.Common.NetCore.SdkPlaceholder.$(Architecture).$(FullNugetVersion).nupkg $(MSBuildThisFileDirectory)packaging/windows/clisdk/VS.Tools.Net.Core.SDK.nuspec $(ArtifactsNonShippingPackagesDir)VS.Tools.Net.Core.SDK.$(Architecture).$(FullNugetVersion).nupkg @@ -36,9 +39,12 @@ $(ArtifactsShippingPackagesDir)$(ArtifactNameWithVersionSdk)$(InstallerExtension) $(ArtifactsShippingPackagesDir)d$(Architecture)-1.cab + Dotnet_CLI $(ArtifactsShippingPackagesDir)dotnet-30templates-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) $(ArtifactsShippingPackagesDir)dotnet-22templates-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) $(ArtifactsShippingPackagesDir)dotnet-21templates-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) + $(ArtifactsShippingPackagesDir)dotnet-sdkplaceholder-$(FullNugetVersion)-$(ProductMonikerRid)$(InstallerExtension) + NetCore_SdkPlaceholder $(ArtifactsShippingPackagesDir)$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(BundleExtension) $(ProductBandCombinedHostHostFxrFrameworkSdkName) @@ -54,7 +60,7 @@ DependsOnTargets="GenerateLayout;SetupWixProperties;GetCoreSdkGitCommitInfo"> - + + + + + @@ -130,11 +141,31 @@ '$(SDKBundleVersion)' ^ '$(NugetVersion)' ^ '$(SdkInstallerUpgradeCode)' ^ + '$(SdkDependencyKeyName)' ^ '$(Architecture)' ^ '$(SdkStableFileIdForApphostTransform)' ^ -InformationAction Continue" /> + + + + + '%(MsiVersion)')' ^ '$(FullNugetVersion)' ^ '@(TemplatesMsiComponent->'%(UpgradeCode)')' ^ + '@(TemplatesMsiComponent->'%(DependencyKeyName)')' ^ '$(Architecture)' ^ -InformationAction Continue" /> @@ -167,6 +199,7 @@ $(BundledTemplates30BrandName) $(BundledTemplates30MsiVersion) $(Templates30InstallerUpgradeCode) + NetCore_Templates_3.0 $(Templates22LayoutPath.TrimEnd('\')) @@ -174,6 +207,7 @@ $(BundledTemplates22BrandName) $(BundledTemplates22MsiVersion) $(Templates22InstallerUpgradeCode) + NetCore_Templates_2.2 $(Templates21LayoutPath.TrimEnd('\')) @@ -181,6 +215,7 @@ $(BundledTemplates21BrandName) $(BundledTemplates21MsiVersion) $(Templates21InstallerUpgradeCode) + NetCore_Templates_2.1 @@ -216,6 +251,7 @@ '$(NugetVersion)' ^ '$(MicrosoftWindowsDesktopPackageVersion)' ^ '$(CombinedFrameworkSDKHostInstallerUpgradeCode)' ^ + '$(SdkDependencyKeyName)' ^ '$(Architecture)' ^ '$(MicrosoftNETCoreAppPackageVersion)' ^ '$(AspNetCoreVersion)' ^ @@ -242,6 +278,24 @@ '$(SdkMSICabFile)'" /> + + + + + + + + + + + + + $(InternalCertificateId) + + + + + + + + diff --git a/src/redist/targets/packaging/windows/clisdk/VS.Redist.Common.NetCore.SdkPlaceholder.nuspec b/src/redist/targets/packaging/windows/clisdk/VS.Redist.Common.NetCore.SdkPlaceholder.nuspec new file mode 100644 index 000000000..1ebf09719 --- /dev/null +++ b/src/redist/targets/packaging/windows/clisdk/VS.Redist.Common.NetCore.SdkPlaceholder.nuspec @@ -0,0 +1,18 @@ + + + + VS.Redist.Common.NetCore.SdkPlaceholder.$ARCH$ + 1.0.0 + VS.Redist.Common.NetCore.SdkPlaceholder.$ARCH$ + Microsoft + Microsoft + https://www.microsoft.com/net/dotnet_library_license.htm + https://github.com/dotnet/core-sdk + true + .NET Core $MAJOR_MINOR$ SDK ARP Placeholder ($ARCH$) Windows Installer MSI as a .nupkg for internal Visual Studio build consumption + © Microsoft Corporation. All rights reserved. + + + + + diff --git a/src/redist/targets/packaging/windows/clisdk/dotnet.wxs b/src/redist/targets/packaging/windows/clisdk/dotnet.wxs index 7ad7c5a04..ef0adfd73 100644 --- a/src/redist/targets/packaging/windows/clisdk/dotnet.wxs +++ b/src/redist/targets/packaging/windows/clisdk/dotnet.wxs @@ -23,6 +23,8 @@ + + diff --git a/src/redist/targets/packaging/windows/clisdk/generatebundle.ps1 b/src/redist/targets/packaging/windows/clisdk/generatebundle.ps1 index 4af217d69..649fbdd5d 100644 --- a/src/redist/targets/packaging/windows/clisdk/generatebundle.ps1 +++ b/src/redist/targets/packaging/windows/clisdk/generatebundle.ps1 @@ -22,6 +22,7 @@ param( [Parameter(Mandatory=$true)][string]$DotnetCLINugetVersion, [Parameter(Mandatory=$true)][string]$WindowsDesktopVersion, [Parameter(Mandatory=$true)][string]$UpgradeCode, + [Parameter(Mandatory=$true)][string]$DependencyKeyName, [Parameter(Mandatory=$true)][string]$Architecture, [Parameter(Mandatory=$true)][string]$DotNetRuntimeVersion, [Parameter(Mandatory=$true)][string]$AspNetCoreVersion, @@ -44,6 +45,7 @@ function RunCandleForBundle -dSDKProductBandVersion="$SDKProductBandVersion" ` -dNugetVersion="$DotnetCLINugetVersion" ` -dCLISDKMsiSourcePath="$CLISDKMSIFile" ` + -dDependencyKeyName="$DependencyKeyName" ` -dUpgradeCode="$UpgradeCode" ` -dSharedFXMsiSourcePath="$SharedFxMSIFile" ` -dHostFXRMsiSourcePath="$HostFxrMSIFile" ` diff --git a/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 b/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 index 146704113..d19137f5c 100644 --- a/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 +++ b/src/redist/targets/packaging/windows/clisdk/generatemsi.ps1 @@ -10,6 +10,7 @@ param( [Parameter(Mandatory=$true)][string]$SDKBundleVersion, [Parameter(Mandatory=$true)][string]$DotnetCLINugetVersion, [Parameter(Mandatory=$true)][string]$UpgradeCode, + [Parameter(Mandatory=$true)][string]$DependencyKeyName, [Parameter(Mandatory=$true)][string]$Architecture, [Parameter(Mandatory=$true)][string]$StableFileIdForApphostTransform ) @@ -66,6 +67,7 @@ function RunCandle -dSDKBundleVersion="$SDKBundleVersion" ` -dNugetVersion="$DotnetCLINugetVersion" ` -dUpgradeCode="$UpgradeCode" ` + -dDependencyKeyName="$DependencyKeyName" ` -arch "$Architecture" ` -ext WixDependencyExtension.dll ` "$PSScriptRoot\dotnet.wxs" ` diff --git a/src/redist/targets/packaging/windows/clisdk/generatesdkplaceholdermsi.ps1 b/src/redist/targets/packaging/windows/clisdk/generatesdkplaceholdermsi.ps1 new file mode 100644 index 000000000..9a307e01c --- /dev/null +++ b/src/redist/targets/packaging/windows/clisdk/generatesdkplaceholdermsi.ps1 @@ -0,0 +1,105 @@ +# 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. + +param( + [Parameter(Mandatory=$true)][string]$DotnetMSIOutput, + [Parameter(Mandatory=$true)][string]$WixRoot, + [Parameter(Mandatory=$true)][string]$ProductMoniker, + [Parameter(Mandatory=$true)][string]$DotnetMSIVersion, + [Parameter(Mandatory=$true)][string]$SDKBundleVersion, + [Parameter(Mandatory=$true)][string]$DotnetCLINugetVersion, + [Parameter(Mandatory=$true)][string]$UpgradeCode, + [Parameter(Mandatory=$true)][string]$DependencyKeyName, + [Parameter(Mandatory=$true)][string]$Architecture +) + +function RunCandle +{ + $result = $true + pushd "$WixRoot" + + Write-Information "Running candle.." + + $candleOutput = .\candle.exe -nologo ` + -dDotnetSrc="$inputDir" ` + -dMicrosoftEula="$PSScriptRoot\clisdk\dummyeula.rtf" ` + -dProductMoniker="$ProductMoniker" ` + -dBuildVersion="$DotnetMSIVersion" ` + -dSDKBundleVersion="$SDKBundleVersion" ` + -dNugetVersion="$DotnetCLINugetVersion" ` + -dUpgradeCode="$UpgradeCode" ` + -dDependencyKeyName="$DependencyKeyName" ` + -arch "$Architecture" ` + -ext WixDependencyExtension.dll ` + "$PSScriptRoot\sdkplaceholder.wxs" ` + "$PSScriptRoot\provider.wxs" + + Write-Information "Candle output: $candleOutput" + + if($LastExitCode -ne 0) + { + $result = $false + Write-Information "Candle failed with exit code $LastExitCode." + } + + popd + return $result +} + +function RunLight +{ + $result = $true + pushd "$WixRoot" + + Write-Information "Running light.." + $CabCache = Join-Path $WixRoot "cabcache" + + $lightOutput = .\light.exe -nologo -ext WixUIExtension -ext WixDependencyExtension -ext WixUtilExtension ` + -cultures:en-us ` + sdkplaceholder.wixobj ` + provider.wixobj ` + -b "$PSScriptRoot" ` + -reusecab ` + -cc "$CabCache" ` + -out $DotnetMSIOutput + + Write-Information "Light output: $lightOutput" + + if($LastExitCode -ne 0) + { + $result = $false + Write-Information "Light failed with exit code $LastExitCode." + } + + popd + return $result +} + +Write-Information "Creating SdkPlaceholder MSI at $DotnetMSIOutput" + +if([string]::IsNullOrEmpty($WixRoot)) +{ + Exit -1 +} + +if(-Not (RunCandle)) +{ + Write-Information "Candle failed" + Exit -1 +} + +if(-Not (RunLight)) +{ + Write-Information "Light failed" + Exit -1 +} + +if(!(Test-Path $DotnetMSIOutput)) +{ + throw "Unable to create the SdkPlaceholder MSI." + Exit -1 +} + +Write-Information "Successfully created SdkPlaceholder MSI - $DotnetMSIOutput" + +exit $LastExitCode diff --git a/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 b/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 index ecb17fc2d..a987c584c 100644 --- a/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 +++ b/src/redist/targets/packaging/windows/clisdk/generatetemplatesmsi.ps1 @@ -10,6 +10,7 @@ param( [Parameter(Mandatory=$true)][string]$SDKBundleVersion, [Parameter(Mandatory=$true)][string]$DotnetCLINugetVersion, [Parameter(Mandatory=$true)][string]$UpgradeCode, + [Parameter(Mandatory=$true)][string]$DependencyKeyName, [Parameter(Mandatory=$true)][string]$Architecture ) @@ -59,6 +60,7 @@ function RunCandle -dSDKBundleVersion="$SDKBundleVersion" ` -dNugetVersion="$DotnetCLINugetVersion" ` -dUpgradeCode="$UpgradeCode" ` + -dDependencyKeyName="$DependencyKeyName" ` -arch "$Architecture" ` -ext WixDependencyExtension.dll ` "$PSScriptRoot\templates.wxs" ` diff --git a/src/redist/targets/packaging/windows/clisdk/sdkplaceholder.wxs b/src/redist/targets/packaging/windows/clisdk/sdkplaceholder.wxs new file mode 100644 index 000000000..a3d5b9e98 --- /dev/null +++ b/src/redist/targets/packaging/windows/clisdk/sdkplaceholder.wxs @@ -0,0 +1,34 @@ + + + + + + + + Installed OR ALLOWMSIINSTALL + + + + NOT Installed OR ALLOWMSIUNINSTALL + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/redist/targets/packaging/windows/clisdk/variables.wxi b/src/redist/targets/packaging/windows/clisdk/variables.wxi index 3b1202e2f..c9536e77a 100644 --- a/src/redist/targets/packaging/windows/clisdk/variables.wxi +++ b/src/redist/targets/packaging/windows/clisdk/variables.wxi @@ -30,6 +30,6 @@ - +