<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <!-- AcquireWix Properties --> <PropertyGroup> <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> <WixDownloadSentinel>$(WixRoot)/WixDownload.$(WixVersion).sentinel</WixDownloadSentinel> </PropertyGroup> <!-- Generate MSI/Bundle Properties --> <PropertyGroup> <CombinedFrameworkSdkHostBundleEngineName>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionCombinedHostHostFxrFrameworkSdk)-engine.exe</CombinedFrameworkSdkHostBundleEngineName> <SdkGenerateMsiPowershellScript>$(RepoRoot)/packaging/windows/clisdk/generatemsi.ps1</SdkGenerateMsiPowershellScript> <SdkGenerateBundlePowershellScript>$(RepoRoot)/packaging/windows/clisdk/generatebundle.ps1</SdkGenerateBundlePowershellScript> <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> <SdkInstallerNupkgFile>$(InstallerOutputDirectory)/VS.Redist.Common.Net.Core.SDK.$(Architecture).$(FullNugetVersion).nupkg</SdkInstallerNupkgFile> <SdkMSBuildExtensionsNuspecFile>$(RepoRoot)/packaging/windows/clisdk/VS.Redist.Common.Net.Core.SDK.MSBuildExtensions.nuspec</SdkMSBuildExtensionsNuspecFile> <SdkMSBuildExtensionsNupkgFile>$(InstallerOutputDirectory)/VS.Redist.Common.Net.Core.SDK.MSBuildExtensions.$(FullNugetVersion).nupkg</SdkMSBuildExtensionsNupkgFile> <SdkMSBuildExtensionsSwrFile>$(InstallerOutputDirectory)/VS.Redist.Common.Net.Core.SDK.MSBuildExtensions.swr</SdkMSBuildExtensionsSwrFile> </PropertyGroup> <!-- Test Sdk MSI Properties --> <PropertyGroup> <SdkTestMsiPowershellScript>$(RepoRoot)/test/Installer/testmsi.ps1</SdkTestMsiPowershellScript> <SdkMsiTestedSentinel>$(InstallerOutputDirectory)/$(ArtifactNameWithVersionSdk).MsiTested.sentinel</SdkMsiTestedSentinel> </PropertyGroup> <Target Name="MsiTargetsSetupInputOutputs" DependsOnTargets="Init"> <!-- Generate SDK MSI Inputs --> <ItemGroup> <GenerateSdkMsiInputs Include="$(SdkLayoutOutputDirectory)/**/*; $(SdkGenerateMsiPowershellScript)" /> <GenerateMSBuildExtensionsMsiInputs Include="$(MSBuildExtensionsOutputDirectory)/**/*; $(MSBuildExtensionsGenerateMsiPowershellScript)" /> </ItemGroup> <!-- Consumed By Publish --> <ItemGroup> <GeneratedInstallers Include="$(SdkInstallerFile);$(CombinedFrameworkSdkHostInstallerFile)" /> <GeneratedInstallers Condition=" '$(Architecture)' == 'x86' " Include="$(MSBuildExtensionsInstallerFile)" /> </ItemGroup> <GenerateMsiVersion CommitCount="$(CommitCount)" VersionMajor="$(VersionMajor)" VersionMinor="$(VersionMinor)" VersionPatch="$(VersionPatch)"> <Output TaskParameter="MsiVersion" PropertyName="MsiVersion" /> </GenerateMsiVersion> <GenerateGuidFromName Name="$(SdkInstallerFile)"> <Output TaskParameter="OutputGuid" PropertyName="SdkInstallerUpgradeCode" /> </GenerateGuidFromName> <GenerateGuidFromName Name="$(MSBuildExtensionsInstallerFile)"> <Output TaskParameter="OutputGuid" PropertyName="MSBuildExtensionsInstallerUpgradeCode" /> </GenerateGuidFromName> <GenerateGuidFromName Name="$(CombinedFrameworkSdkHostInstallerFile)"> <Output TaskParameter="OutputGuid" PropertyName="CombinedFrameworkSDKHostInstallerUpgradeCode" /> </GenerateGuidFromName> </Target> <Target Name="AcquireWix" DependsOnTargets="Init;MsiTargetsSetupInputOutputs" Inputs="$(WixDownloadSentinel)" Outputs="$(WixDestinationPath)"> <!-- Setup sentinel to take advantage of incrementality --> <MakeDir Directories="$(WixRoot)" /> <WriteLinesToFile File="$(WixDownloadSentinel)" Lines="$(WixVersion)" Overwrite="true" Encoding="Unicode"/> <DownloadFile Uri="$(WixDownloadUrl)" DestinationPath="$(WixDestinationPath)" Overwrite="false" /> <ZipFileExtractToDirectory SourceArchive="$(WixDestinationPath)" DestinationDirectory="$(WixRoot)" /> </Target> <Target Name="GenerateSdkMsi" DependsOnTargets="Init;Layout;AcquireWix;MsiTargetsSetupInputOutputs" Condition=" '$(OS)' == 'Windows_NT'" Inputs="@(GenerateSdkMsiInputs)" Outputs="$(SdkInstallerFile)"> <Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateMsiPowershellScript) '$(SdkLayoutOutputDirectory)' '$(SdkInstallerFile)' '$(WixRoot)' '$(SdkBrandName)' '$(MsiVersion)' '$(SimpleVersion)' '$(NugetVersion)' '$(SdkInstallerUpgradeCode)' '$(Architecture)'" /> </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" DependsOnTargets="Init;Layout;AcquireWix;MsiTargetsSetupInputOutputs;GenerateSdkMsi" Condition=" '$(OS)' == 'Windows_NT'" Inputs="$(SdkInstallerFile); $(DownloadedSharedFrameworkInstallerFile); $(DownloadedHostFxrInstallerFile); $(DownloadedSharedHostInstallerFile); $(SdkGenerateBundlePowershellScript)" Outputs="$(CombinedFrameworkSdkHostInstallerFile)"> <Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateBundlePowershellScript) '$(SdkInstallerFile)' '$(DownloadedAspNetCoreSharedFxInstallerFile)' '$(DownloadedSharedFrameworkInstallerFile)' '$(DownloadedHostFxrInstallerFile)' '$(DownloadedSharedHostInstallerFile)' '$(CombinedFrameworkSdkHostInstallerFile)' '$(WixRoot)' '$(SdkBrandName)' '$(MsiVersion)' '$(SimpleVersion)' '$(NugetVersion)' '$(CombinedFrameworkSDKHostInstallerUpgradeCode)' '$(Architecture)' '$(MicrosoftNETCoreAppPackageVersion)' '$(AspNetCoreVersion)'" /> </Target> <Target Name="GenerateSdkNupkg" DependsOnTargets="Init;Layout;MsiTargetsSetupInputOutputs;GenerateSdkBundle" Condition=" '$(OS)' == 'Windows_NT'" Inputs="$(CombinedFrameworkSdkHostInstallerFile); $(SdkInstallerNuspecFile); $(SdkGenerateNupkgPowershellScript)" Outputs="$(SdkInstallerNupkgFile)"> <Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateNupkgPowershellScript) '$(CombinedFrameworkSdkHostInstallerFile)' '$(FullNugetVersion)' '$(SdkInstallerNuspecFile)' '$(SdkInstallerNupkgFile)'" /> </Target> <Target Name="GenerateSdkMSBuildExtensionsNupkg" DependsOnTargets="Init;Layout;MsiTargetsSetupInputOutputs;GenerateSdkBundle" Condition=" '$(OS)' == 'Windows_NT' And '$(Architecture)' == 'x64' " Inputs="$(MSBuildExtensionsLayoutDirectory)/**/*; $(SdkInstallerNuspecFile); $(SdkGenerateNupkgPowershellScript)" Outputs="$(SdkMSBuildExtensionsNupkgFile);$(SdkMSBuildExtensionsSwrFile)"> <Exec Command="powershell -NoProfile -NoLogo $(SdkGenerateNupkgPowershellScript) '$(MSBuildExtensionsLayoutDirectory)' '$(FullNugetVersion)' '$(SdkMSBuildExtensionsNuspecFile)' '$(SdkMSBuildExtensionsNupkgFile)'" /> <GenerateMSBuildExtensionsSWR MSBuildExtensionsLayoutDirectory="$(MSBuildExtensionsLayoutDirectory)" OutputFile="$(SdkMSBuildExtensionsSwrFile)"/> </Target> <Target Name="TestSdkMsi" Inputs="$(SdkInstallerFile)" Outputs="$(SdkMsiTestedSentinel)" DependsOnTargets="Init;MsiTargetsSetupInputOutputs;GenerateSdkMsi" Condition=" '$(OS)' == 'Windows_NT'" > <Exec Command ="powershell -NoProfile -NoLogo $(SdkTestMsiPowershellScript) -InputMsi '$(SdkInstallerFile)' -DotnetDir '$(PreviousStageDirectory)' -TestDir '$(TestOutputDir)'" /> <WriteLinesToFile File="$(SdkMsiTestedSentinel)" Lines="$(SdkVersion)" Overwrite="true" Encoding="Unicode"/> </Target> <Target Name="GenerateMsis" DependsOnTargets="Init; Layout; MsiTargetsSetupInputOutputs; AcquireWix; GenerateSdkMsi; GenerateMSBuildExtensionsMsi; GenerateSdkBundle; GenerateSdkNupkg; GenerateSdkMSBuildExtensionsNupkg; TestSdkMsi" Condition=" '$(OS)' == 'Windows_NT'" /> <!-- These targets are used in signing, don't remove them! --> <Target Name="ExtractEngineFromSdkBundle" DependsOnTargets="MsiTargetsSetupInputOutputs"> <Exec Command="$(WixRoot)/insignia.exe -ib $(CombinedFrameworkSdkHostInstallerFile) -o $(CombinedFrameworkSdkHostBundleEngineName)" /> </Target> <Target Name="ReattachEngineToSdkBundle" DependsOnTargets="MsiTargetsSetupInputOutputs"> <Exec Command="$(WixRoot)/insignia.exe -ab $(CombinedFrameworkSdkHostBundleEngineName) $(CombinedFrameworkSdkHostInstallerFile) -o $(CombinedFrameworkSdkHostInstallerFile)" /> </Target> </Project>