234 lines
11 KiB
XML
234 lines
11 KiB
XML
<?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)'
|
|
'$(AspNetCoreRuntimeInstallerWixLibFile)'
|
|
'$(DownloadedSharedFrameworkInstallerFile)'
|
|
'$(DownloadedHostFxrInstallerFile)'
|
|
'$(DownloadedSharedHostInstallerFile)'
|
|
'$(CombinedFrameworkSdkHostInstallerFile)'
|
|
'$(WixRoot)'
|
|
'$(SdkBrandName)'
|
|
'$(MsiVersion)'
|
|
'$(SimpleVersion)'
|
|
'$(NugetVersion)'
|
|
'$(CombinedFrameworkSDKHostInstallerUpgradeCode)'
|
|
'$(Architecture)'" />
|
|
</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'"
|
|
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 '$(Stage0Directory)'" />
|
|
|
|
<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>
|