From 53a454fbd3e2992be5c1f2c8ed9e2c2974f0e7b8 Mon Sep 17 00:00:00 2001 From: "Dustin L. Howett" Date: Thu, 24 Feb 2022 18:09:28 -0600 Subject: [PATCH] build: ship a Win11 build of Terminal that's <=half the size (#12560) Four (4) squashed changes, with messages preserved. ## release: move symbol publication into its own phase Right now, symbol publication happens every time we produce a final bundle. In the future, we may be producing multiple bundles from the same pipeline run, and we need to make sure we only do *one* symbol publication to MSDL. When we do that, it will be advantageous for us to have just one phase that source-indexes and publishes all of the symbols. ## Remove Terminal's built-in copy of the VC Runtime This removes the trick we pulled in #5661 and saves us ~550kb per arch. Some of our dependencies still depend on the "app" versions of the runtime libraries, so we are going to continue shipping the forwarders in our package. Build rules have been updated to remove the non-Desktop VCLibs dependency to slim down our package graph. This is not a problem on Windows 11 -- it looks like it's shipped inbox. **BREAKING CHANGE**: When launched unpackaged, Terminal now requires the vcruntime redist to be installed. ## Prepare for toggling XAML between 2.7.0 and -prerelease on Win11 common.openconsole.props is a pretty good place to stash the XAML version since it is included in every project (including the WAP project (unlike the C++ build props!)). I've gone ahead and added a "double dependency" on multiple XAML versions. We'll toggle them with a build flag. ## Run the release pipeline twice, for Win10 and Win11, at the same time This required some changes in how we download artifacts to make sure that we could control which version of Windows we were processing in any individual step. We're also going to patch the package manifest on the Windows 11 version so the store targets it more specifically. On top of the prior three steps, this lets us ship a Windows 11 package that costs only ~15MB on disk. The Windows 10 version, for comparison, is about 40. --- .github/actions/spelling/allow/microsoft.txt | 8 +- build/pipelines/release.yml | 170 +++++++++++------- .../Patch-ManifestsToWindowsVersion.ps1 | 14 ++ common.openconsole.props | 14 ++ custom.props | 12 ++ .../ScratchIslandApp/Package/Package.wapproj | 4 +- .../SampleApp/SampleAppLib.vcxproj | 4 +- .../SampleApp/dll/SampleApp.vcxproj | 4 +- .../SampleApp/packages.config | 2 +- .../WindowExe/WindowExe.vcxproj | 4 +- .../WindowExe/packages.config | 2 +- .../CascadiaPackage/CascadiaPackage.wapproj | 22 ++- .../SettingsModel.LocalTests.vcxproj | 8 +- .../TerminalApp.LocalTests.vcxproj | 4 +- .../TestHostApp/TestHostApp.vcxproj | 2 +- .../TerminalApp/TerminalAppLib.vcxproj | 4 +- .../TerminalApp/dll/TerminalApp.vcxproj | 4 +- src/cascadia/TerminalApp/packages.config | 1 + ...Microsoft.Terminal.Settings.Editor.vcxproj | 4 +- .../TerminalSettingsEditor/packages.config | 2 +- ...crosoft.Terminal.Settings.ModelLib.vcxproj | 4 +- .../Microsoft.Terminal.Settings.Model.vcxproj | 4 +- .../WindowsTerminal/WindowsTerminal.vcxproj | 25 +-- src/cascadia/WindowsTerminal/packages.config | 4 +- .../ut_app/TerminalApp.UnitTests.vcxproj | 6 +- src/cppwinrt.build.pre.props | 8 +- 26 files changed, 200 insertions(+), 140 deletions(-) create mode 100644 build/scripts/Patch-ManifestsToWindowsVersion.ps1 diff --git a/.github/actions/spelling/allow/microsoft.txt b/.github/actions/spelling/allow/microsoft.txt index 13197f167b2..1f4a28664f2 100644 --- a/.github/actions/spelling/allow/microsoft.txt +++ b/.github/actions/spelling/allow/microsoft.txt @@ -19,6 +19,7 @@ CPRs cryptbase DACL DACLs +defaultlib diffs disposables dotnetfeed @@ -27,6 +28,8 @@ DWINRT enablewttlogging Intelli IVisual +libucrt +libucrtd LKG LOCKFILE Lxss @@ -36,10 +39,11 @@ microsoftonline MSAA msixbundle MSVC +MSVCP muxc netcore -osgvsowi Onefuzz +osgvsowi PFILETIME pgc pgo @@ -63,6 +67,8 @@ systemroot taskkill tasklist tdbuildteamid +ucrt +ucrtd unvirtualized VCRT vcruntime diff --git a/build/pipelines/release.yml b/build/pipelines/release.yml index 4c40ac623c5..abe79847680 100644 --- a/build/pipelines/release.yml +++ b/build/pipelines/release.yml @@ -22,6 +22,10 @@ parameters: displayName: "Run Compliance and Security Build" type: boolean default: true + - name: publishSymbolsToPublic + displayName: "Publish Symbols to MSDL" + type: boolean + default: true - name: buildTerminalVPack displayName: "Build Windows Terminal VPack" type: boolean @@ -48,6 +52,11 @@ parameters: - x64 - x86 - arm64 + - name: buildWindowsVersions + type: object + default: + - Win10 + - Win11 variables: TerminalInternalPackageVersion: "0.0.7" @@ -64,9 +73,11 @@ jobs: matrix: ${{ each config in parameters.buildConfigurations }}: ${{ each platform in parameters.buildPlatforms }}: - ${{ config }}_${{ platform }}: - BuildConfiguration: ${{ config }} - BuildPlatform: ${{ platform }} + ${{ each windowsVersion in parameters.buildWindowsVersions }}: + ${{ config }}_${{ platform }}_${{ windowsVersion }}: + BuildConfiguration: ${{ config }} + BuildPlatform: ${{ platform }} + TerminalTargetWindowsVersion: ${{ windowsVersion }} displayName: Build timeoutInMinutes: 240 cancelTimeoutInMinutes: 1 @@ -163,6 +174,10 @@ jobs: arguments: -MarkdownNoticePath .\NOTICE.md -OutputPath .\src\cascadia\CascadiaPackage\NOTICE.html pwsh: true - ${{ if eq(parameters.buildTerminal, true) }}: + - pwsh: |- + ./build/scripts/Patch-ManifestsToWindowsVersion.ps1 -NewWindowsVersion "10.0.22000.0" + displayName: Update manifest target version to Win11 (if necessary) + condition: and(succeeded(), eq(variables['TerminalTargetWindowsVersion'], 'Win11')) - task: VSBuild@1 displayName: Build solution **\OpenConsole.sln condition: true @@ -180,7 +195,7 @@ jobs: continueOnError: True inputs: PathtoPublish: $(Build.SourcesDirectory)\msbuild.binlog - ArtifactName: binlog-$(BuildPlatform) + ArtifactName: binlog-$(BuildPlatform)-$(TerminalTargetWindowsVersion) - task: PowerShell@2 displayName: Check MSIX for common regressions inputs: @@ -243,7 +258,7 @@ jobs: displayName: Publish Artifact (appx) inputs: PathtoPublish: $(Build.ArtifactStagingDirectory)/appx - ArtifactName: appx-$(BuildPlatform)-$(BuildConfiguration) + ArtifactName: appx-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion) - ${{ if eq(parameters.buildWPF, true) }}: - task: CopyFiles@2 displayName: Copy PublicTerminalCore.dll to Artifacts @@ -261,7 +276,7 @@ jobs: condition: and(succeeded(), ne(variables['BuildPlatform'], 'arm64')) inputs: PathtoPublish: $(Build.ArtifactStagingDirectory)/wpf - ArtifactName: wpf-dll-$(BuildPlatform)-$(BuildConfiguration) + ArtifactName: wpf-dll-$(BuildPlatform)-$(BuildConfiguration)-$(TerminalTargetWindowsVersion) - task: PublishSymbols@2 displayName: Publish symbols path @@ -279,6 +294,11 @@ jobs: - ${{ if eq(parameters.buildTerminal, true) }}: - job: BundleAndSign + strategy: + matrix: + ${{ each windowsVersion in parameters.buildWindowsVersions }}: + ${{ windowsVersion }}: + TerminalTargetWindowsVersion: ${{ windowsVersion }} displayName: Create and sign AppX/MSIX bundles dependsOn: Build steps: @@ -291,23 +311,16 @@ jobs: displayName: Package ES - Setup Build inputs: disableOutputRedirect: true - - task: DownloadBuildArtifacts@0 - displayName: Download Artifacts (*.appx, *.msix, *.appxsym) - inputs: - downloadType: specific - itemPattern: >- - **/*.msix - - **/*.appx - - **/*.appxsym - extractTars: false - + - ${{ each platform in parameters.buildPlatforms }}: + - task: DownloadBuildArtifacts@0 + displayName: Download Artifacts ${{ platform }} $(TerminalTargetWindowsVersion) + inputs: + artifactName: appx-${{ platform }}-Release-$(TerminalTargetWindowsVersion) - task: PowerShell@2 displayName: Create WindowsTerminal*.msixbundle inputs: filePath: build\scripts\Create-AppxBundle.ps1 - arguments: -InputPath "$(System.ArtifactsDirectory)" -ProjectName CascadiaPackage -BundleVersion 0.0.0.0 -OutputPath "$(System.ArtifactsDirectory)\Microsoft.WindowsTerminal_$(XES_APPXMANIFESTVERSION)_8wekyb3d8bbwe.msixbundle" + arguments: -InputPath "$(System.ArtifactsDirectory)" -ProjectName CascadiaPackage -BundleVersion 0.0.0.0 -OutputPath "$(System.ArtifactsDirectory)\Microsoft.WindowsTerminal_$(TerminalTargetWindowsVersion)_$(XES_APPXMANIFESTVERSION)_8wekyb3d8bbwe.msixbundle" - task: EsrpCodeSigning@1 displayName: Submit *.msixbundle to ESRP for code signing inputs: @@ -343,55 +356,11 @@ jobs: } ] - # It seems easier to do this -- download every appxsym -- then enumerate all the PDBs in the build directory for the - # public symbol push. Otherwise, we would have to list all of the PDB files one by one. - - pwsh: |- - mkdir $(Build.SourcesDirectory)/appxsym-temp - Get-ChildItem "$(System.ArtifactsDirectory)" -Filter *.appxsym -Recurse | % { - $src = $_.FullName - $dest = Join-Path "$(Build.SourcesDirectory)/appxsym-temp/" $_.Name - - mkdir $dest - Write-Host "Extracting $src to $dest..." - tar -x -v -f $src -C $dest - } - displayName: Extract symbols for public consumption - - # Pull the Windows SDK for the developer tools like the debuggers so we can index sources later - - template: .\templates\install-winsdk-steps.yml - - task: PowerShell@2 - displayName: Source Index PDBs (the public ones) - inputs: - filePath: build\scripts\Index-Pdbs.ps1 - arguments: -SearchDir '$(Build.SourcesDirectory)/appxsym-temp' -SourceRoot '$(Build.SourcesDirectory)' -recursive -Verbose -CommitId $(Build.SourceVersion) - - # Publish the app symbols to the public MSDL symbol server - # accessible via https://msdl.microsoft.com/download/symbols - - task: PublishSymbols@2 - displayName: 'Publish app symbols to MSDL' - inputs: - symbolsFolder: '$(Build.SourcesDirectory)/appxsym-temp' - searchPattern: '**/*.pdb' - SymbolsMaximumWaitTime: 30 - SymbolServerType: 'TeamServices' - SymbolsProduct: 'Windows Terminal Application Binaries' - SymbolsVersion: '$(XES_APPXMANIFESTVERSION)' - # The ADO task does not support indexing of GitHub sources. - indexSources: false - detailedLog: true - # There is a bug which causes this task to fail if LIB includes an inaccessible path (even though it does not depend on it). - # To work around this issue, we just force LIB to be any dir that we know exists. - # Copied from https://github.com/microsoft/icu/blob/f869c214adc87415dfe751d81f42f1bca55dcf5f/build/azure-nuget.yml#L564-L583 - env: - LIB: $(Build.SourcesDirectory) - ArtifactServices_Symbol_AccountName: microsoftpublicsymbols - ArtifactServices_Symbol_PAT: $(ADO_microsoftpublicsymbols_PAT) - - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: appxbundle-signed' inputs: PathtoPublish: $(System.ArtifactsDirectory) - ArtifactName: appxbundle-signed + ArtifactName: appxbundle-signed-$(TerminalTargetWindowsVersion) - ${{ if eq(parameters.buildWPF, true) }}: - job: PackageAndSignWPF @@ -415,14 +384,14 @@ jobs: - task: DownloadBuildArtifacts@0 displayName: Download x86 PublicTerminalCore inputs: - artifactName: wpf-dll-x86-$(BuildConfiguration) + artifactName: wpf-dll-x86-$(BuildConfiguration)-Win10 itemPattern: '**/*.dll' downloadPath: bin\Win32\$(BuildConfiguration)\ extractTars: false - task: DownloadBuildArtifacts@0 displayName: Download x64 PublicTerminalCore inputs: - artifactName: wpf-dll-x64-$(BuildConfiguration) + artifactName: wpf-dll-x64-$(BuildConfiguration)-Win10 itemPattern: '**/*.dll' downloadPath: bin\x64\$(BuildConfiguration)\ extractTars: false @@ -504,6 +473,71 @@ jobs: PathtoPublish: $(Build.ArtifactStagingDirectory)\nupkg ArtifactName: wpf-nupkg-$(BuildConfiguration) +- ${{ if eq(parameters.publishSymbolsToPublic, true) }}: + - job: PublishSymbols + displayName: Publish Symbols + dependsOn: BundleAndSign + steps: + - checkout: self + clean: true + fetchDepth: 1 + submodules: true + - task: PkgESSetupBuild@12 + displayName: Package ES - Setup Build + + # Download the appx-PLATFORM-CONFIG-VERSION artifact for every platform/version combo + - ${{ each platform in parameters.buildPlatforms }}: + - ${{ each windowsVersion in parameters.buildWindowsVersions }}: + - task: DownloadBuildArtifacts@0 + displayName: Download Symbols ${{ platform }} ${{ windowsVersion }} + inputs: + artifactName: appx-${{ platform }}-Release-${{ windowsVersion }} + + # It seems easier to do this -- download every appxsym -- then enumerate all the PDBs in the build directory for the + # public symbol push. Otherwise, we would have to list all of the PDB files one by one. + - pwsh: |- + mkdir $(Build.SourcesDirectory)/appxsym-temp + Get-ChildItem "$(System.ArtifactsDirectory)" -Filter *.appxsym -Recurse | % { + $src = $_.FullName + $dest = Join-Path "$(Build.SourcesDirectory)/appxsym-temp/" $_.Name + + mkdir $dest + Write-Host "Extracting $src to $dest..." + tar -x -v -f $src -C $dest + } + displayName: Extract symbols for public consumption + + # Pull the Windows SDK for the developer tools like the debuggers so we can index sources later + - template: .\templates\install-winsdk-steps.yml + - task: PowerShell@2 + displayName: Source Index PDBs (the public ones) + inputs: + filePath: build\scripts\Index-Pdbs.ps1 + arguments: -SearchDir '$(Build.SourcesDirectory)/appxsym-temp' -SourceRoot '$(Build.SourcesDirectory)' -recursive -Verbose -CommitId $(Build.SourceVersion) + + # Publish the app symbols to the public MSDL symbol server + # accessible via https://msdl.microsoft.com/download/symbols + - task: PublishSymbols@2 + displayName: 'Publish app symbols to MSDL' + inputs: + symbolsFolder: '$(Build.SourcesDirectory)/appxsym-temp' + searchPattern: '**/*.pdb' + SymbolsMaximumWaitTime: 30 + SymbolServerType: 'TeamServices' + SymbolsProduct: 'Windows Terminal Application Binaries' + SymbolsVersion: '$(XES_APPXMANIFESTVERSION)' + # The ADO task does not support indexing of GitHub sources. + indexSources: false + detailedLog: true + # There is a bug which causes this task to fail if LIB includes an inaccessible path (even though it does not depend on it). + # To work around this issue, we just force LIB to be any dir that we know exists. + # Copied from https://github.com/microsoft/icu/blob/f869c214adc87415dfe751d81f42f1bca55dcf5f/build/azure-nuget.yml#L564-L583 + env: + LIB: $(Build.SourcesDirectory) + ArtifactServices_Symbol_AccountName: microsoftpublicsymbols + ArtifactServices_Symbol_PAT: $(ADO_microsoftpublicsymbols_PAT) + + - ${{ if eq(parameters.buildTerminalVPack, true) }}: - job: VPack displayName: Create Windows vPack @@ -518,7 +552,7 @@ jobs: - task: DownloadBuildArtifacts@0 displayName: Download Build Artifacts inputs: - artifactName: appxbundle-signed + artifactName: appxbundle-signed-Win11 extractTars: false - task: PowerShell@2 displayName: Rename and stage packages for vpack @@ -527,7 +561,7 @@ jobs: script: >- # Rename to known/fixed name for Windows build system - Get-ChildItem Microsoft.WindowsTerminal_*.msixbundle | Rename-Item -NewName { 'Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle' } + Get-ChildItem Microsoft.WindowsTerminal_Win11_*.msixbundle | Rename-Item -NewName { 'Microsoft.WindowsTerminal_8wekyb3d8bbwe.msixbundle' } # Create vpack directory and place item inside diff --git a/build/scripts/Patch-ManifestsToWindowsVersion.ps1 b/build/scripts/Patch-ManifestsToWindowsVersion.ps1 new file mode 100644 index 00000000000..fe86f24fd8c --- /dev/null +++ b/build/scripts/Patch-ManifestsToWindowsVersion.ps1 @@ -0,0 +1,14 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT license. + +Param( + [string]$NewWindowsVersion = "10.0.22000.0" +) + +Get-ChildItem src/cascadia/CascadiaPackage -Recurse -Filter *.appxmanifest | ForEach-Object { + $xml = [xml](Get-Content $_.FullName) + $xml.Package.Dependencies.TargetDeviceFamily | Where-Object Name -Like "Windows*" | ForEach-Object { + $_.MinVersion = $NewWindowsVersion + } + $xml.Save($_.FullName) +} diff --git a/common.openconsole.props b/common.openconsole.props index e521ad61996..400555dbdd5 100644 --- a/common.openconsole.props +++ b/common.openconsole.props @@ -10,4 +10,18 @@ $(MSBuildThisFileDirectory) + + + 2.7.0-prerelease.210913003 + + 2.7.0 + + diff --git a/custom.props b/custom.props index e82cc844cc2..aab0b65870b 100644 --- a/custom.props +++ b/custom.props @@ -2,6 +2,18 @@ + + $([MSBuild]::Add($(VersionBuildRevision), 1)) + true 2022 1 diff --git a/scratch/ScratchIslandApp/Package/Package.wapproj b/scratch/ScratchIslandApp/Package/Package.wapproj index 8f526698b1c..4de7a05a3cf 100644 --- a/scratch/ScratchIslandApp/Package/Package.wapproj +++ b/scratch/ScratchIslandApp/Package/Package.wapproj @@ -140,12 +140,12 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/scratch/ScratchIslandApp/SampleApp/SampleAppLib.vcxproj b/scratch/ScratchIslandApp/SampleApp/SampleAppLib.vcxproj index 04b9b082496..5d84890f014 100644 --- a/scratch/ScratchIslandApp/SampleApp/SampleAppLib.vcxproj +++ b/scratch/ScratchIslandApp/SampleApp/SampleAppLib.vcxproj @@ -147,13 +147,13 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/scratch/ScratchIslandApp/SampleApp/dll/SampleApp.vcxproj b/scratch/ScratchIslandApp/SampleApp/dll/SampleApp.vcxproj index 59d500ccc6e..91592d6f771 100644 --- a/scratch/ScratchIslandApp/SampleApp/dll/SampleApp.vcxproj +++ b/scratch/ScratchIslandApp/SampleApp/dll/SampleApp.vcxproj @@ -80,13 +80,13 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/scratch/ScratchIslandApp/SampleApp/packages.config b/scratch/ScratchIslandApp/SampleApp/packages.config index ec5cd9a0fbd..f167ce9570a 100644 --- a/scratch/ScratchIslandApp/SampleApp/packages.config +++ b/scratch/ScratchIslandApp/SampleApp/packages.config @@ -1,6 +1,6 @@ - + diff --git a/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj b/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj index 18a5a05fe33..f83b237149c 100644 --- a/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj +++ b/scratch/ScratchIslandApp/WindowExe/WindowExe.vcxproj @@ -137,14 +137,14 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/scratch/ScratchIslandApp/WindowExe/packages.config b/scratch/ScratchIslandApp/WindowExe/packages.config index 319e836803c..cbcb02cb6dc 100644 --- a/scratch/ScratchIslandApp/WindowExe/packages.config +++ b/scratch/ScratchIslandApp/WindowExe/packages.config @@ -2,6 +2,6 @@ - + diff --git a/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj b/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj index 48d8caffdf9..ca2a76477f6 100644 --- a/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj +++ b/src/cascadia/CascadiaPackage/CascadiaPackage.wapproj @@ -138,36 +138,34 @@ - - - + + + - - + + + - - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj b/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj index f383f371001..2ad3e5508e3 100644 --- a/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj +++ b/src/cascadia/LocalTests_SettingsModel/SettingsModel.LocalTests.vcxproj @@ -81,8 +81,8 @@ If you don't have this, then you'll see an error like "(init.obj) : error LNK2005: DllMain already defined in MSVCRTD.lib(dll_dllmain_stub.obj)" --> - /INCLUDE:_DllMain@12 - /INCLUDE:DllMain + %(AdditionalOptions) /INCLUDE:_DllMain@12 + %(AdditionalOptions) /INCLUDE:DllMain @@ -99,10 +99,10 @@ x86 $(Platform) - <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\runtimes\win10-$(Native-Platform)\native\" + <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.$(TerminalMUXVersion)\runtimes\win10-$(Native-Platform)\native\" - + diff --git a/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj b/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj index 6217790a895..d44431a5f89 100644 --- a/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj +++ b/src/cascadia/LocalTests_TerminalApp/TerminalApp.LocalTests.vcxproj @@ -92,11 +92,11 @@ x86 $(Platform) - <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\runtimes\win10-$(Native-Platform)\native\" + <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.$(TerminalMUXVersion)\runtimes\win10-$(Native-Platform)\native\" - + diff --git a/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj b/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj index 5197b0bd07f..a97fe8064b4 100644 --- a/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj +++ b/src/cascadia/LocalTests_TerminalApp/TestHostApp/TestHostApp.vcxproj @@ -123,7 +123,7 @@ - + diff --git a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj index 4cb06143311..40fad5cce81 100644 --- a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj +++ b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj @@ -400,13 +400,13 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/src/cascadia/TerminalApp/dll/TerminalApp.vcxproj b/src/cascadia/TerminalApp/dll/TerminalApp.vcxproj index a5d86577692..ef10edfa434 100644 --- a/src/cascadia/TerminalApp/dll/TerminalApp.vcxproj +++ b/src/cascadia/TerminalApp/dll/TerminalApp.vcxproj @@ -89,13 +89,13 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + diff --git a/src/cascadia/TerminalApp/packages.config b/src/cascadia/TerminalApp/packages.config index e039fa4ae47..62c921a4fac 100644 --- a/src/cascadia/TerminalApp/packages.config +++ b/src/cascadia/TerminalApp/packages.config @@ -1,6 +1,7 @@ + diff --git a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj index e508129eb35..7c5f17695a9 100644 --- a/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj +++ b/src/cascadia/TerminalSettingsEditor/Microsoft.Terminal.Settings.Editor.vcxproj @@ -345,12 +345,12 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + \ No newline at end of file diff --git a/src/cascadia/TerminalSettingsEditor/packages.config b/src/cascadia/TerminalSettingsEditor/packages.config index 44d99225891..9b938bd8686 100644 --- a/src/cascadia/TerminalSettingsEditor/packages.config +++ b/src/cascadia/TerminalSettingsEditor/packages.config @@ -1,6 +1,6 @@ - + diff --git a/src/cascadia/TerminalSettingsModel/Microsoft.Terminal.Settings.ModelLib.vcxproj b/src/cascadia/TerminalSettingsModel/Microsoft.Terminal.Settings.ModelLib.vcxproj index ad7c9dcc07f..bf0e68e2662 100644 --- a/src/cascadia/TerminalSettingsModel/Microsoft.Terminal.Settings.ModelLib.vcxproj +++ b/src/cascadia/TerminalSettingsModel/Microsoft.Terminal.Settings.ModelLib.vcxproj @@ -268,12 +268,12 @@ - + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + - - x86 - $(Platform) - - - - - <_OpenConsoleVCLibToCopy Include="$(VCToolsRedistInstallDir)\$(ReasonablePlatform)\Microsoft.VC142.CRT\*.dll" /> - - - $(ProjectName) - BuiltProjectOutputGroup - %(Filename)%(Extension) - - - - + diff --git a/src/cascadia/WindowsTerminal/packages.config b/src/cascadia/WindowsTerminal/packages.config index 39685454320..762898bbd46 100644 --- a/src/cascadia/WindowsTerminal/packages.config +++ b/src/cascadia/WindowsTerminal/packages.config @@ -2,8 +2,8 @@ - + - + diff --git a/src/cascadia/ut_app/TerminalApp.UnitTests.vcxproj b/src/cascadia/ut_app/TerminalApp.UnitTests.vcxproj index 41a6a3e96a9..11759a5613f 100644 --- a/src/cascadia/ut_app/TerminalApp.UnitTests.vcxproj +++ b/src/cascadia/ut_app/TerminalApp.UnitTests.vcxproj @@ -72,8 +72,8 @@ If you don't have this, then you'll see an error like "(init.obj) : error LNK2005: DllMain already defined in MSVCRTD.lib(dll_dllmain_stub.obj)" --> - /INCLUDE:_DllMain@12 - /INCLUDE:DllMain + %(AdditionalOptions) /INCLUDE:_DllMain@12 + %(AdditionalOptions) /INCLUDE:DllMain @@ -93,7 +93,7 @@ x86 $(Platform) - <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.0-prerelease.210913003\runtimes\win10-$(Native-Platform)\native\" + <_MUXBinRoot>"$(OpenConsoleDir)packages\Microsoft.UI.Xaml.$(TerminalMUXVersion)\runtimes\win10-$(Native-Platform)\native\" diff --git a/src/cppwinrt.build.pre.props b/src/cppwinrt.build.pre.props index 478970ef564..263da4fd9bf 100644 --- a/src/cppwinrt.build.pre.props +++ b/src/cppwinrt.build.pre.props @@ -43,17 +43,15 @@ + + <_VC_Target_Library_Platform>Desktop <_NoWinAPIFamilyApp>true