Adding a installer for Downlevel (Dev14) to install .NET Framework props and targets to enable it to reference netstandard 2.0.

This commit is contained in:
Livar Cunha 2017-06-27 16:49:34 -07:00
parent 262c9d9a12
commit a396550ed0
10 changed files with 280 additions and 2 deletions

View file

@ -1,6 +1,7 @@
<Project ToolsVersion="14.0"> <Project ToolsVersion="14.0">
<PropertyGroup> <PropertyGroup>
<SdkBrandName>Microsoft .NET Core SDK - 2.0.0 Preview 2</SdkBrandName> <SdkBrandName>Microsoft .NET Core SDK - 2.0.0 Preview 2</SdkBrandName>
<MSBuildExtensionsBrandName>Microsoft .NET Core MSBuild Extensions - 2.0.0 Preview 2</MSBuildExtensionsBrandName>
<SharedFrameworkBrandName>Microsoft .NET Core Runtime - 2.0.0</SharedFrameworkBrandName> <SharedFrameworkBrandName>Microsoft .NET Core Runtime - 2.0.0</SharedFrameworkBrandName>
<SharedHostBrandName>Microsoft .NET Core Host - 2.0.0</SharedHostBrandName> <SharedHostBrandName>Microsoft .NET Core Host - 2.0.0</SharedHostBrandName>
<HostFxrBrandName>Microsoft .NET Core Host FX Resolver - 2.0.0</HostFxrBrandName> <HostFxrBrandName>Microsoft .NET Core Host FX Resolver - 2.0.0</HostFxrBrandName>
@ -24,7 +25,7 @@
<ArtifactNameCombinedHostHostFxrFrameworkSdk>dotnet-sdk</ArtifactNameCombinedHostHostFxrFrameworkSdk> <ArtifactNameCombinedHostHostFxrFrameworkSdk>dotnet-sdk</ArtifactNameCombinedHostHostFxrFrameworkSdk>
<ArtifactNameWithVersionSdk>$(ArtifactNameSdk)-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionSdk> <ArtifactNameWithVersionSdk>$(ArtifactNameSdk)-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionSdk>
<ArtifactNameWithVersionMSBuildExtensions>dotnet-msbuild-extensions-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionMSBuildExtensions>
<ArtifactNameWithVersionSdkDebug>$(ArtifactNameSdkDebug)-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionSdkDebug> <ArtifactNameWithVersionSdkDebug>$(ArtifactNameSdkDebug)-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionSdkDebug>
<ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk>$(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk> <ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk>$(ArtifactNameCombinedHostHostFxrFrameworkSdk)-$(SdkVersion)-$(ProductMonikerRid)</ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk>

View file

@ -2,11 +2,13 @@
<PropertyGroup> <PropertyGroup>
<InstallerOutputDirectory>$(PackagesDirectory)</InstallerOutputDirectory> <InstallerOutputDirectory>$(PackagesDirectory)</InstallerOutputDirectory>
<SdkInstallerFile>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionSdk)$(InstallerExtension)</SdkInstallerFile> <SdkInstallerFile>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionSdk)$(InstallerExtension)</SdkInstallerFile>
<MSBuildExtensionsInstallerFile>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionMSBuildExtensions)$(InstallerExtension)</MSBuildExtensionsInstallerFile>
<CombinedFrameworkSdkHostInstallerFile>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(BundleExtension)</CombinedFrameworkSdkHostInstallerFile> <CombinedFrameworkSdkHostInstallerFile>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)$(BundleExtension)</CombinedFrameworkSdkHostInstallerFile>
<SdkDebianIntermediateDirectory>$(IntermediateDirectory)/debian/sdk</SdkDebianIntermediateDirectory> <SdkDebianIntermediateDirectory>$(IntermediateDirectory)/debian/sdk</SdkDebianIntermediateDirectory>
<LayoutDirectory Condition=" '$(OSName)' == 'ubuntu' OR '$(OSName)' == 'debian' ">$(SdkDebianIntermediateDirectory)/debianLayoutDirectory</LayoutDirectory> <LayoutDirectory Condition=" '$(OSName)' == 'ubuntu' OR '$(OSName)' == 'debian' ">$(SdkDebianIntermediateDirectory)/debianLayoutDirectory</LayoutDirectory>
<LayoutDirectory Condition=" '$(OSName)' != 'ubuntu' AND '$(OSName)' != 'debian' ">$(IntermediateDirectory)/layouts</LayoutDirectory> <LayoutDirectory Condition=" '$(OSName)' != 'ubuntu' AND '$(OSName)' != 'debian' ">$(IntermediateDirectory)/layouts</LayoutDirectory>
<SdkLayoutOutputDirectory>$(LayoutDirectory)/$(ArtifactNameSdk)</SdkLayoutOutputDirectory> <SdkLayoutOutputDirectory>$(LayoutDirectory)/$(ArtifactNameSdk)</SdkLayoutOutputDirectory>
<MSBuildExtensionsOutputDirectory>$(LayoutDirectory)/MSBuildExtensions</MSBuildExtensionsOutputDirectory>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -37,7 +37,7 @@
<Target Name="SetupGenerateArchivesInputsOutputs" <Target Name="SetupGenerateArchivesInputsOutputs"
DependsOnTargets="Init"> DependsOnTargets="Init">
<ItemGroup> <ItemGroup>
<GenerateArchivesInputsOutputs Include="%(LayoutDefinition.Name)"> <GenerateArchivesInputsOutputs Condition=" '%(LayoutDefinition.Name)' != '' " Include="%(LayoutDefinition.Name)">
<Inputs>%(LayoutDefinition.OutputFiles)</Inputs> <Inputs>%(LayoutDefinition.OutputFiles)</Inputs>
<Outputs>$(ArchiveOutputDirectory)/%(LayoutDefinition.NameWithVersion)$(ArchiveExtension)</Outputs> <Outputs>$(ArchiveOutputDirectory)/%(LayoutDefinition.NameWithVersion)$(ArchiveExtension)</Outputs>
<InputDirectory>$(LayoutDirectory)/%(LayoutDefinition.Name)</InputDirectory> <InputDirectory>$(LayoutDirectory)/%(LayoutDefinition.Name)</InputDirectory>

View file

@ -17,6 +17,8 @@
<SdkGenerateBundlePowershellScript>$(RepoRoot)/packaging/windows/clisdk/generatebundle.ps1</SdkGenerateBundlePowershellScript> <SdkGenerateBundlePowershellScript>$(RepoRoot)/packaging/windows/clisdk/generatebundle.ps1</SdkGenerateBundlePowershellScript>
<SdkGenerateNupkgPowershellScript>$(RepoRoot)/packaging/windows/clisdk/generatenupkg.ps1</SdkGenerateNupkgPowershellScript> <SdkGenerateNupkgPowershellScript>$(RepoRoot)/packaging/windows/clisdk/generatenupkg.ps1</SdkGenerateNupkgPowershellScript>
<MSBuildExtensionsGenerateMsiPowershellScript>$(RepoRoot)/packaging/windows/msbuildextensions/generatemsi.ps1</MSBuildExtensionsGenerateMsiPowershellScript>
<SdkInstallerNuspecFile>$(RepoRoot)/packaging/windows/clisdk/VS.Redist.Common.Net.Core.SDK.$(Architecture).nuspec</SdkInstallerNuspecFile> <SdkInstallerNuspecFile>$(RepoRoot)/packaging/windows/clisdk/VS.Redist.Common.Net.Core.SDK.$(Architecture).nuspec</SdkInstallerNuspecFile>
<SdkInstallerNupkgFile>$(InstallerOutputDirectory)/VS.Redist.Common.Net.Core.SDK.$(Architecture).$(FullNugetVersion).nupkg</SdkInstallerNupkgFile> <SdkInstallerNupkgFile>$(InstallerOutputDirectory)/VS.Redist.Common.Net.Core.SDK.$(Architecture).$(FullNugetVersion).nupkg</SdkInstallerNupkgFile>
@ -36,11 +38,14 @@
<ItemGroup> <ItemGroup>
<GenerateSdkMsiInputs Include="$(SdkLayoutOutputDirectory)/**/*; <GenerateSdkMsiInputs Include="$(SdkLayoutOutputDirectory)/**/*;
$(SdkGenerateMsiPowershellScript)" /> $(SdkGenerateMsiPowershellScript)" />
<GenerateMSBuildExtensionsMsiInputs Include="$(MSBuildExtensionsOutputDirectory)/**/*;
$(MSBuildExtensionsGenerateMsiPowershellScript)" />
</ItemGroup> </ItemGroup>
<!-- Consumed By Publish --> <!-- Consumed By Publish -->
<ItemGroup> <ItemGroup>
<GeneratedInstallers Include="$(SdkInstallerFile);$(CombinedFrameworkSdkHostInstallerFile)" /> <GeneratedInstallers Include="$(SdkInstallerFile);$(CombinedFrameworkSdkHostInstallerFile)" />
<GeneratedInstallers Condition=" '$(Architecture)' == 'x86' " Include="$(MSBuildExtensionsInstallerFile)" />
</ItemGroup> </ItemGroup>
<GenerateMsiVersion CommitCount="$(CommitCount)" <GenerateMsiVersion CommitCount="$(CommitCount)"
@ -55,6 +60,11 @@
PropertyName="SdkInstallerUpgradeCode" /> PropertyName="SdkInstallerUpgradeCode" />
</GenerateGuidFromName> </GenerateGuidFromName>
<GenerateGuidFromName Name="$(MSBuildExtensionsInstallerFile)">
<Output TaskParameter="OutputGuid"
PropertyName="MSBuildExtensionsInstallerUpgradeCode" />
</GenerateGuidFromName>
<GenerateGuidFromName Name="$(CombinedFrameworkSdkHostInstallerFile)"> <GenerateGuidFromName Name="$(CombinedFrameworkSdkHostInstallerFile)">
<Output TaskParameter="OutputGuid" <Output TaskParameter="OutputGuid"
PropertyName="CombinedFrameworkSDKHostInstallerUpgradeCode" /> PropertyName="CombinedFrameworkSDKHostInstallerUpgradeCode" />
@ -103,6 +113,24 @@
'$(Architecture)'" /> '$(Architecture)'" />
</Target> </Target>
<Target Name="GenerateMSBuildExtensionsMsi"
DependsOnTargets="Init;Layout;AcquireWix;MsiTargetsSetupInputOutputs"
Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x86' "
Inputs="@(GenerateMSBuildExtensionsMsiInputs)"
Outputs="$(MSBuildExtensionsInstallerFile)">
<Exec Command="powershell -NoProfile -NoLogo $(MSBuildExtensionsGenerateMsiPowershellScript)
'$(MSBuildExtensionsOutputDirectory)'
'$(MSBuildExtensionsInstallerFile)'
'$(WixRoot)'
'$(MSBuildExtensionsBrandName)'
'$(SimpleVersion)'
'$(SimpleVersion)'
'$(NugetVersion)'
'$(MSBuildExtensionsInstallerUpgradeCode)'
'$(Architecture)'" />
</Target>
<Target Name="GenerateSdkBundle" <Target Name="GenerateSdkBundle"
DependsOnTargets="Init;Layout;AcquireWix;MsiTargetsSetupInputOutputs;GenerateSdkMsi" DependsOnTargets="Init;Layout;AcquireWix;MsiTargetsSetupInputOutputs;GenerateSdkMsi"
Condition=" '$(OS)' == 'Windows_NT'" Condition=" '$(OS)' == 'Windows_NT'"
@ -186,6 +214,7 @@
MsiTargetsSetupInputOutputs; MsiTargetsSetupInputOutputs;
AcquireWix; AcquireWix;
GenerateSdkMsi; GenerateSdkMsi;
GenerateMSBuildExtensionsMsi;
GenerateSdkBundle; GenerateSdkBundle;
GenerateSdkNupkg; GenerateSdkNupkg;
GenerateSdkMSBuildExtensionsNupkg; GenerateSdkMSBuildExtensionsNupkg;

View file

@ -13,6 +13,11 @@
<CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" /> <CombinedHostHostFxrFrameworkSdkInput Include="$(OutputDirectory)/**/*" />
<AspNetRuntimeFilesInput Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" /> <AspNetRuntimeFilesInput Include="$(AspNetRuntimePackageStorePublishDirectory)/**/*" />
<MSBuildExtensionsInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions/**/*" />
<MSBuildExtensionsVerInput Include="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions-ver/**/*" />
<CombinedMSBuildExtensionsInput Include="@(MSBuildExtensionsInput)" />
<CombinedMSBuildExtensionsInput Include="@(MSBuildExtensionsVerInput)" />
</ItemGroup> </ItemGroup>
<MakeRelative <MakeRelative
@ -31,6 +36,22 @@
<Output TaskParameter="RelativePath" ItemName="CombinedHostHostFxrFrameworkSdkRelativeOutputFiles" /> <Output TaskParameter="RelativePath" ItemName="CombinedHostHostFxrFrameworkSdkRelativeOutputFiles" />
</MakeRelative> </MakeRelative>
<MakeRelative
Path1="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions/"
Path2="%(MSBuildExtensionsInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="MSBuildExtensionsRelativeOutputFiles" />
</MakeRelative>
<MakeRelative
Path1="$(MSBuildExtensionsLayoutDirectory)/msbuildExtensions-ver/"
Path2="%(MSBuildExtensionsVerInput.Identity)" >
<Output TaskParameter="RelativePath" ItemName="MSBuildExtensionsVerRelativeOutputFiles" />
</MakeRelative>
<ItemGroup>
<CombinedMSBuildExtensionsRelativeOutputFiles Include="@(MSBuildExtensionsRelativeOutputFiles)" />
<CombinedMSBuildExtensionsRelativeOutputFiles Include="@(MSBuildExtensionsVerRelativeOutputFiles -> '14.0/%(Identity)')" />
</ItemGroup>
<!-- Set up Items Defining Layouts for easy change --> <!-- Set up Items Defining Layouts for easy change -->
<ItemGroup> <ItemGroup>
<LayoutDefinition Include="Sdk"> <LayoutDefinition Include="Sdk">
@ -53,7 +74,13 @@
<NameWithVersion>$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)</NameWithVersion> <NameWithVersion>$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)</NameWithVersion>
<Name>$(ArtifactNameCombinedHostHostFxrFrameworkSdk)</Name> <Name>$(ArtifactNameCombinedHostHostFxrFrameworkSdk)</Name>
</LayoutDefinition> </LayoutDefinition>
</ItemGroup>
<ItemGroup Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x86' ">
<LayoutDefinition Include="MSBuildExtensions">
<InputFiles>@(CombinedMSBuildExtensionsInput)</InputFiles>
<OutputFiles>@(CombinedMSBuildExtensionsRelativeOutputFiles -> '$(MSBuildExtensionsOutputDirectory)/%(Identity)')</OutputFiles>
</LayoutDefinition>
</ItemGroup> </ItemGroup>
</Target> </Target>

View file

@ -0,0 +1,140 @@
# 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]$inputDir,
[Parameter(Mandatory=$true)][string]$MSBuildExtensionsMSIOutput,
[Parameter(Mandatory=$true)][string]$WixRoot,
[Parameter(Mandatory=$true)][string]$ProductMoniker,
[Parameter(Mandatory=$true)][string]$DotnetMSIVersion,
[Parameter(Mandatory=$true)][string]$DotnetCLIDisplayVersion,
[Parameter(Mandatory=$true)][string]$DotnetCLINugetVersion,
[Parameter(Mandatory=$true)][string]$UpgradeCode,
[Parameter(Mandatory=$true)][string]$Architecture
)
. "$PSScriptRoot\..\..\..\scripts\common\_common.ps1"
$RepoRoot = Convert-Path "$PSScriptRoot\..\..\.."
$InstallFileswsx = "install-files.wxs"
$InstallFilesWixobj = "install-files.wixobj"
function RunHeat
{
$result = $true
pushd "$WixRoot"
Write-Output Running heat..
.\heat.exe dir `"$inputDir`" -template fragment -sreg -gg -var var.DotnetSrc -cg InstallFiles -srd -dr MSBUILDEXTENSIONSHOME -out $InstallFileswsx | Out-Host
if($LastExitCode -ne 0)
{
$result = $false
Write-Output "Heat failed with exit code $LastExitCode."
}
popd
return $result
}
function RunCandle
{
$result = $true
pushd "$WixRoot"
Write-Output Running candle..
$AuthWsxRoot = Join-Path $RepoRoot "packaging\windows\msbuildextensions"
.\candle.exe -nologo `
-dDotnetSrc="$inputDir" `
-dMicrosoftEula="$RepoRoot\packaging\windows\clisdk\dummyeula.rtf" `
-dProductMoniker="$ProductMoniker" `
-dBuildVersion="$DotnetMSIVersion" `
-dDisplayVersion="$DotnetCLIDisplayVersion" `
-dNugetVersion="$DotnetCLINugetVersion" `
-dUpgradeCode="$UpgradeCode" `
-arch "$Architecture" `
-ext WixDependencyExtension.dll `
"$AuthWsxRoot\msbuildextensions.wxs" `
"$AuthWsxRoot\provider.wxs" `
"$AuthWsxRoot\registrykeys.wxs" `
$InstallFileswsx | Out-Host
if($LastExitCode -ne 0)
{
$result = $false
Write-Output "Candle failed with exit code $LastExitCode."
}
popd
return $result
}
function RunLight
{
$result = $true
pushd "$WixRoot"
Write-Output Running light..
$CabCache = Join-Path $WixRoot "cabcache"
$AuthWsxRoot = Join-Path $RepoRoot "packaging\windows\msbuildextensions"
.\light.exe -nologo -ext WixUIExtension -ext WixDependencyExtension -ext WixUtilExtension `
-cultures:en-us `
msbuildextensions.wixobj `
provider.wixobj `
registrykeys.wixobj `
$InstallFilesWixobj `
-b "$inputDir" `
-b "$AuthWsxRoot" `
-reusecab `
-cc "$CabCache" `
-out $MSBuildExtensionsMSIOutput | Out-Host
if($LastExitCode -ne 0)
{
$result = $false
Write-Output "Light failed with exit code $LastExitCode."
}
popd
return $result
}
if(!(Test-Path $inputDir))
{
throw "$inputDir not found"
}
Write-Output "Creating MSBuild Extensions MSI at $MSBuildExtensionsMSIOutput"
if([string]::IsNullOrEmpty($WixRoot))
{
Exit -1
}
if(-Not (RunHeat))
{
Exit -1
}
if(-Not (RunCandle))
{
Exit -1
}
if(-Not (RunLight))
{
Exit -1
}
if(!(Test-Path $MSBuildExtensionsMSIOutput))
{
throw "Unable to create the MSBuild Extensions msi."
Exit -1
}
Write-Output -ForegroundColor Green "Successfully created MSBuild Extensions MSI - $MSBuildExtensionsMSIOutput"
exit $LastExitCode

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include "Variables.wxi" ?>
<Product Id="*" Name="$(var.ProductName)" Language="$(var.ProductLanguage)" Version="$(var.ProductVersion)" Manufacturer="$(var.Manufacturer)" UpgradeCode="$(var.UpgradeCode)">
<Package Compressed="yes" InstallScope="perMachine" InstallerVersion="200" />
<MajorUpgrade DowngradeErrorMessage="$(var.DowngradeErrorMessage)" Schedule="afterInstallInitialize"/>
<MediaTemplate CabinetTemplate="dnet-{0}.cab" CompressionLevel="high" />
<Feature Id="MainFeature" Title="Main Feature" Level="1">
<ComponentGroupRef Id="InstallFiles" />
<ComponentGroupRef Id="AuthoredRegistryKeys"/>
</Feature>
<Feature Id="Provider" Absent="disallow" AllowAdvertise="no" Description="Used for Ref Counting" Display="hidden" Level="1" InstallDefault="local" Title="RefCounting" TypicalDefault="install">
<ComponentRef Id="$(var.DependencyKeyId)" />
</Feature>
<Property Id="ProductFamily" Value="$(var.ProductFamily)" />
<Property Id="ProductEdition" Value="$(var.ProductEdition)" />
<Property Id="ProductCPU" Value="$(var.Platform)" />
<Property Id="RTM_ProductVersion" Value="$(var.Dotnet_ProductVersion)" />
<Property Id="MSIFASTINSTALL" Value="7" />
<WixVariable Id="WixUILicenseRtf" Value="$(var.MicrosoftEula)" />
<CustomActionRef Id="WixBroadcastEnvironmentChange" />
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.Program_Files)">
<Directory Id="MSBUILDEXTENSIONSHOME" Name="MSBuild"/>
</Directory>
</Directory>
</Fragment>
</Wix>

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:dep="http://schemas.microsoft.com/wix/DependencyExtension">
<?include "Variables.wxi" ?>
<Fragment>
<Component Id="$(var.DependencyKeyId)" Directory="TARGETDIR" Win64="no" Guid="*">
<dep:Provides Key="$(var.DependencyKey)" />
</Component>
</Fragment>
</Wix>

View file

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include "Variables.wxi" ?>
<Fragment>
<ComponentGroup Id="AuthoredRegistryKeys">
<Component Id="SetupRegistry_x86" Directory="TARGETDIR" Win64="no">
<RegistryKey Root="HKLM" Key="SOFTWARE\dotnet\Setup\InstalledVersions\$(var.Platform)\MSBuildExtensions">
<RegistryValue Action="write" Name="$(var.NugetVersion)" Type="integer" Value="1" KeyPath="yes"/>
</RegistryKey>
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View file

@ -0,0 +1,23 @@
<?xml version="1.0"?>
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?define Servicing_Key_SP = "0" ?>
<?define Servicing_Key_SPIndex = "0" ?>
<?define Servicing_Key_SPName = "Beta" ?>
<?define Dotnet_ProductVersion = "$(var.BuildVersion)" ?>
<?define Dotnet_DisplayVersion = "$(var.DisplayVersion)" ?>
<?define Dotnet_BuildVersion = "$(var.BuildVersion)" ?>
<?define Manufacturer = "Microsoft Corporation" ?>
<?define ProductName = "$(var.ProductMoniker) ($(sys.BUILDARCH))" ?>
<?define ProductLanguage = "1033" ?>
<?define ProductVersion = "$(var.Dotnet_ProductVersion)" ?>
<?define ProductFamily = "dotnet" ?>
<?define ProductEdition = "001dotnet" ?>
<?define LCID = "$(var.ProductLanguage)"?>
<?define DowngradeErrorMessage = "A newer version is already installed; please uninstall it and re-run setup."?>
<?define Program_Files="ProgramFilesFolder"?>
<?define Win64AttributeValue=no?>
<?define DependencyKey = "Dotnet_MSBUILD_EXTENSIONS_$(var.Dotnet_DisplayVersion)_$(var.Platform)"?>
<?define DependencyKeyId = "$(var.DependencyKey)" ?>
</Include>