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