diff --git a/Build.proj b/Build.proj index 3e40bdb2f..f09a1e166 100644 --- a/Build.proj +++ b/Build.proj @@ -7,7 +7,8 @@ - + + diff --git a/Directory.Build.props b/Directory.Build.props index c695c0ace..a5edba5c3 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,8 +1,51 @@ - + + true + + + full + full + + + + false + 1 + + + true + false + + + true + + + true + true + + + true + false + 1 + 1 + + + false + 1 + + + + + + false + + + 600000 + 600000 + 600 + https://github.com/dotnet/windowsdesktop https://dot.net @@ -15,12 +58,16 @@ $(MSBuildThisFileDirectory)THIRD-PARTY-NOTICES.TXT https://go.microsoft.com/fwlink/?LinkID=799421 + + 4 true - x64 + + $(Platform) + x64 $(WarningsNotAsErrors);NU1901;NU1902;NU1903;NU1904 @@ -29,4 +76,36 @@ true + + https://builds.dotnet.microsoft.com/dotnet/ + + https://ci.dot.net/public/ + https://ci.dot.net/internal/ + + true + $(ArtifactsShippingPackagesDir) + + + + + + + + + $(DotnetRuntimeSourceFeedKey) + + + + + + + + + + diff --git a/Directory.Packages.props b/Directory.Packages.props index 693c34765..d9ab369bb 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -71,6 +71,15 @@ + + + + + + + + + diff --git a/WindowsDesktop.sln b/WindowsDesktop.sln new file mode 100644 index 000000000..6eb3d2233 --- /dev/null +++ b/WindowsDesktop.sln @@ -0,0 +1,61 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "eng", "eng", "{7525B257-249C-EE79-B10A-65D0BC27ABA9}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{C3C130B5-2C3F-D4B2-E3F3-EC385075C7AB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools", "eng\common\internal\Tools.csproj", "{4F21FD48-C11F-D5EF-ADE2-1691A92E45C5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Microsoft.Windows.Compatibility", "Microsoft.Windows.Compatibility", "{292A50E1-7820-1638-6BA6-14FBE6B99F15}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "runtime.native.System.IO.Ports", "src\Microsoft.Windows.Compatibility\package\runtime.native.System.IO.Ports.csproj", "{E47F785E-FA7A-58A1-D296-8C8F02432E6F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Windows.Compatibility", "src\Microsoft.Windows.Compatibility\src\Microsoft.Windows.Compatibility.csproj", "{B4E26156-D23F-346E-920D-DB46A8C16C8E}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "windowsdesktop", "windowsdesktop", "{B1DEBE5E-C067-B350-5F22-0DD39AD9FFE8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.WindowsDesktop.App.Tests", "src\windowsdesktop\tests\Microsoft.WindowsDesktop.App.Tests.csproj", "{DDF86961-3AF2-FBA0-E08B-F367E1ABC517}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4F21FD48-C11F-D5EF-ADE2-1691A92E45C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4F21FD48-C11F-D5EF-ADE2-1691A92E45C5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4F21FD48-C11F-D5EF-ADE2-1691A92E45C5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4F21FD48-C11F-D5EF-ADE2-1691A92E45C5}.Release|Any CPU.Build.0 = Release|Any CPU + {E47F785E-FA7A-58A1-D296-8C8F02432E6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E47F785E-FA7A-58A1-D296-8C8F02432E6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E47F785E-FA7A-58A1-D296-8C8F02432E6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E47F785E-FA7A-58A1-D296-8C8F02432E6F}.Release|Any CPU.Build.0 = Release|Any CPU + {B4E26156-D23F-346E-920D-DB46A8C16C8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4E26156-D23F-346E-920D-DB46A8C16C8E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4E26156-D23F-346E-920D-DB46A8C16C8E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4E26156-D23F-346E-920D-DB46A8C16C8E}.Release|Any CPU.Build.0 = Release|Any CPU + {DDF86961-3AF2-FBA0-E08B-F367E1ABC517}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDF86961-3AF2-FBA0-E08B-F367E1ABC517}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDF86961-3AF2-FBA0-E08B-F367E1ABC517}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDF86961-3AF2-FBA0-E08B-F367E1ABC517}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {C3C130B5-2C3F-D4B2-E3F3-EC385075C7AB} = {7525B257-249C-EE79-B10A-65D0BC27ABA9} + {4F21FD48-C11F-D5EF-ADE2-1691A92E45C5} = {C3C130B5-2C3F-D4B2-E3F3-EC385075C7AB} + {292A50E1-7820-1638-6BA6-14FBE6B99F15} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {E47F785E-FA7A-58A1-D296-8C8F02432E6F} = {292A50E1-7820-1638-6BA6-14FBE6B99F15} + {B4E26156-D23F-346E-920D-DB46A8C16C8E} = {292A50E1-7820-1638-6BA6-14FBE6B99F15} + {B1DEBE5E-C067-B350-5F22-0DD39AD9FFE8} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B} + {DDF86961-3AF2-FBA0-E08B-F367E1ABC517} = {B1DEBE5E-C067-B350-5F22-0DD39AD9FFE8} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B96CF507-B5D5-4809-9C1C-7948C55C80FB} + EndGlobalSection +EndGlobal diff --git a/azure-pipelines-PR.yml b/azure-pipelines-PR.yml index 98ae82ca1..277c14c38 100644 --- a/azure-pipelines-PR.yml +++ b/azure-pipelines-PR.yml @@ -28,7 +28,7 @@ variables: value: .NETCoreValidation # Produce test-signed build for PR and Public builds - - name: SignType + - name: _SignType value: test stages: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ee71b5f5b..ea81a703d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,7 +32,7 @@ variables: value: .NETCoreValidation # Produce test-signed build for PR and Public builds -- name: SignType +- name: _SignType value: $[ coalesce(variables.OfficialSignType, 'real') ] resources: diff --git a/build-all-architectures.ps1 b/build-all-architectures.ps1 new file mode 100644 index 000000000..06cb46f76 --- /dev/null +++ b/build-all-architectures.ps1 @@ -0,0 +1,45 @@ +#!/usr/bin/env pwsh + +param( + [string]$target = "Build", + [Parameter(ValueFromRemainingArguments = $true)] + [string[]]$args +) + +Write-Host "Building Windows Desktop Runtime for all architectures..." + +$architectures = @("x86", "x64", "arm64") +$failed = @() + +if ($target -eq "pack") { + $target = "Build" # The 'Pack' target is part of the 'Build' target in Build.proj +} + +$extraArgs = $args -join " " + +foreach ($arch in $architectures) { + Write-Host "Building for architecture: $arch" -ForegroundColor Green + + # Build the main projects with specific architecture + $command = "dotnet build Build.proj -t:$target -c Release -p:Platform=$arch -p:TargetArchitecture=$arch $extraArgs" + Write-Host "Executing: $command" + Invoke-Expression -Command $command + + if ($LASTEXITCODE -ne 0) { + $failed += $arch + Write-Host "Failed to build $arch architecture" -ForegroundColor Red + } else { + Write-Host "Successfully built $arch architecture" -ForegroundColor Green + } +} + +if ($failed.Count -gt 0) { + Write-Host "Failed architectures: $($failed -join ', ')" -ForegroundColor Red + exit 1 +} else { + Write-Host "All architectures built successfully!" -ForegroundColor Green + + # Show the results + Write-Host "`nGenerated installers:" -ForegroundColor Yellow + Get-ChildItem -Path artifacts -Recurse -Filter "windowsdesktop-runtime-*-win-*.exe" -ErrorAction SilentlyContinue | Select-Object Name, FullName +} \ No newline at end of file diff --git a/build-sequential.cmd b/build-sequential.cmd new file mode 100644 index 000000000..d715f885c --- /dev/null +++ b/build-sequential.cmd @@ -0,0 +1,17 @@ +@echo off +setlocal + +echo Cleaning up any existing build processes... +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq dotnet.exe" /fo table /nh 2^>nul ^| findstr /i "WindowsDesktop"') do ( + echo Killing process %%i + taskkill /f /pid %%i >nul 2>&1 +) + +echo Starting sequential build... +powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\Build.ps1""" -nodeReuse:$false -maxCpuCount:1 -restore -build %*" + +echo Build completed. Cleaning up any remaining processes... +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq dotnet.exe" /fo table /nh 2^>nul ^| findstr /i "WindowsDesktop"') do ( + echo Killing remaining process %%i + taskkill /f /pid %%i >nul 2>&1 +) \ No newline at end of file diff --git a/build-sequential.ps1 b/build-sequential.ps1 new file mode 100644 index 000000000..578a817ae --- /dev/null +++ b/build-sequential.ps1 @@ -0,0 +1,72 @@ +[CmdletBinding()] +param( + [switch]$restore, + [switch]$build, + [switch]$clean, + [string]$configuration = "Debug", + [Parameter(ValueFromRemainingArguments=$true)] + [string[]]$RemainingArgs = @() +) + +function Stop-WindowsDesktopProcesses { + Write-Host "Cleaning up WindowsDesktop build processes..." -ForegroundColor Yellow + + $processes = Get-Process | Where-Object { + $_.ProcessName -eq "dotnet" -and + $_.Path -like "*WindowsDesktop*" + } + + if ($processes) { + $processes | ForEach-Object { + Write-Host " Stopping process $($_.Id) ($($_.ProcessName))" -ForegroundColor Gray + try { + Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue + } catch { + Write-Warning "Failed to stop process $($_.Id): $_" + } + } + Start-Sleep -Seconds 2 + } else { + Write-Host " No WindowsDesktop processes found." -ForegroundColor Gray + } +} + + + +# Main execution +try { + # Clean up any existing processes + Stop-WindowsDesktopProcesses + + # Prepare arguments for Build.ps1 + $buildArguments = @() + if ($restore) { $buildArguments += '-restore' } + if ($build) { $buildArguments += '-build' } + if ($clean) { $buildArguments += '-clean' } + if ($configuration) { + $buildArguments += '-configuration' + $buildArguments += $configuration + } + $buildArguments += $RemainingArgs + + Write-Host "Starting sequential build with single CPU..." -ForegroundColor Green + Write-Host "Arguments: $($buildArguments -join ' ')" -ForegroundColor Gray + + # Run the build with sequential settings + try { + & "$PSScriptRoot\eng\common\Build.ps1" -nodeReuse $false @buildArguments "/maxcpucount:1" + $exitCode = $LASTEXITCODE + } catch { + Write-Error "Build failed: $_" + $exitCode = 1 + } + + Write-Host "`nBuild completed with exit code: $exitCode" -ForegroundColor $(if ($exitCode -eq 0) { 'Green' } else { 'Red' }) + +} finally { + # Always clean up processes after build + Write-Host "`nCleaning up processes after build..." -ForegroundColor Yellow + Stop-WindowsDesktopProcesses +} + +exit $exitCode \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index cd627b7ba..13378557e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -32,5 +32,12 @@ 5.0.0 8.1.2 + + $(DefaultWixSdkVersion) + + + $(MicrosoftNETCoreAppRefVersion) + $(MicrosoftNETCoreAppRefVersion) + diff --git a/eng/pipelines/README.md b/eng/pipelines/README.md new file mode 100644 index 000000000..5f3e891c9 --- /dev/null +++ b/eng/pipelines/README.md @@ -0,0 +1,28 @@ +# Pipeline Notes + +This directory contains templates that compose the main Azure DevOps pipeline for WindowsDesktop. + +## Runtime MSI Acquisition + +The WiX bundle build depends on three runtime prerequisite MSIs being present under `artifacts/prereqs/`. Historically these were staged manually, but the CI pipeline now prepares them automatically before MSBuild executes. + +Each architecture job defined in `jobs/windows-build.yml` performs the following steps prior to invoking `eng/common/cibuild.cmd`: + +1. Import the internal runtime feed credentials via the `enable-internal-runtimes.yml` template, which retrieves the `dotnetbuilds-internal-container-read-token` SAS secret. +2. Pass the runtime source feed and token to Arcade (`-RuntimeSourceFeed` / `-RuntimeSourceFeedKey` and their MSBuild equivalents) so that `eng/common/build.ps1` downloads the required runtime packs on-demand. +3. Allow the bundle build to normalize the host/hostfxr/runtime MSIs into `artifacts/prereqs/` as part of the existing `StagePrereqRuntimeMsis` target execution. + +During the WiX build, the `StagePrereqRuntimeMsis` target (in `src/windowsdesktop/src/bundle/Wix.targets`) detects these staged files and sets `IncludeRuntimeMSIs=true`, ensuring the bundle carries the latest runtime from Maestro. + +### Local Repro + +To emulate the CI behavior locally: + +```powershell +$token = '' +pwsh eng/common/build.ps1 -restore -build -pack -runtimeSourceFeed "https://ci.dot.net/internal" -runtimeSourceFeedKey $token +``` + +The command above mirrors the CI configuration by pointing Arcade at the internal runtime feed. Provide a base64-encoded SAS token with read permissions (matching the `dotnetbuilds-internal` secret) and repeat per architecture if needed using `/p:TargetArchitecture=`. + +Maintain this document if additional preparatory stages are introduced so build orchestration remains discoverable. diff --git a/eng/pipelines/jobs/windows-build-PR.yml b/eng/pipelines/jobs/windows-build-PR.yml index 42b44f4a1..e0c01efbe 100644 --- a/eng/pipelines/jobs/windows-build-PR.yml +++ b/eng/pipelines/jobs/windows-build-PR.yml @@ -42,6 +42,13 @@ jobs: steps: - template: /eng/common/templates/steps/enable-internal-sources.yml + - pwsh: >- + $(Build.SourcesDirectory)\eng\scripts\runtime-prereqs\restore-runtime-prereqs.ps1 + -Architectures $(TargetArchitecture) + -CI + displayName: Restore runtime prerequisite MSIs + condition: ne(variables['TargetArchitecture'], '') + - ${{ if ne(variables['System.TeamProject'], 'public') }}: - task: MicroBuildSigningPlugin@4 displayName: Install MicroBuild plugin for Signing diff --git a/eng/pipelines/jobs/windows-build.yml b/eng/pipelines/jobs/windows-build.yml index 90563d970..5371618b6 100644 --- a/eng/pipelines/jobs/windows-build.yml +++ b/eng/pipelines/jobs/windows-build.yml @@ -24,9 +24,15 @@ jobs: /p:TargetArchitecture=${{ parameters.targetArchitecture }} /p:SkipTests=${{ parameters.skipTests }} - name: MsbuildSigningArguments - value: /p:DotNetSignType=$(SignType) + value: /p:DotNetSignType=$(_SignType) - name: TargetArchitecture value: ${{ parameters.targetArchitecture }} + - name: InternalRuntimeDownloadArgs + value: >- + -RuntimeSourceFeed https://ci.dot.net/internal + -RuntimeSourceFeedKey $(dotnetbuilds-internal-container-read-token-base64) + /p:DotNetRuntimeSourceFeed=https://ci.dot.net/internal + /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) templateContext: outputs: @@ -37,6 +43,14 @@ jobs: artifactName: Logs-${{ parameters.name }}-$(_BuildConfig) steps: - template: /eng/common/templates-official/steps/enable-internal-sources.yml + - template: /eng/common/templates-official/steps/enable-internal-runtimes.yml + + - pwsh: >- + $(Build.SourcesDirectory)\eng\scripts\runtime-prereqs\restore-runtime-prereqs.ps1 + -Architectures $(TargetArchitecture) + -CI + displayName: Restore runtime prerequisite MSIs + condition: ne(variables['TargetArchitecture'], '') - task: MicroBuildSigningPlugin@4 displayName: Install MicroBuild plugin for Signing @@ -47,10 +61,17 @@ jobs: continueOnError: false condition: and(succeeded(), in(variables['SignType'], 'real', 'test')) + - template: /eng/common/core-templates/steps/install-microbuild.yml + parameters: + enableMicrobuild: true + microbuildUseESRP: true + continueOnError: false + - script: >- eng/common/cibuild.cmd $(CommonMSBuildArgs) $(MsbuildSigningArguments) + $(InternalRuntimeDownloadArgs) displayName: Build # Generate SBOM diff --git a/eng/scripts/runtime-prereqs/restore-runtime-prereqs.ps1 b/eng/scripts/runtime-prereqs/restore-runtime-prereqs.ps1 new file mode 100644 index 000000000..5125cee47 --- /dev/null +++ b/eng/scripts/runtime-prereqs/restore-runtime-prereqs.ps1 @@ -0,0 +1,64 @@ +[CmdletBinding(PositionalBinding=$false)] +param( + [string[]]$Architectures = @('x64', 'x86', 'arm64'), + [string]$Configuration, + [string[]]$MsbuildArgs = @(), + [switch]$VerboseLogging, + [switch]$CI +) + +$ErrorActionPreference = 'Stop' +$repoRoot = Resolve-Path (Join-Path $PSScriptRoot '..' '..' '..') +$msbuildScript = Join-Path $repoRoot 'eng' 'common' 'msbuild.ps1' +$bundleProject = Join-Path $repoRoot 'src' 'windowsdesktop' 'src' 'bundle' 'bundle.wixproj' + +if (-not (Test-Path $msbuildScript)) { + throw "Unable to locate msbuild.ps1 at '$msbuildScript'" +} + +if (-not (Test-Path $bundleProject)) { + throw "Unable to locate bundle project at '$bundleProject'" +} + +$architectures = $Architectures | Where-Object { $_ -and $_.Trim() } | ForEach-Object { $_.Trim().ToLowerInvariant() } | Select-Object -Unique +if (-not $architectures) { + throw 'At least one architecture must be supplied.' +} + +foreach ($arch in $architectures) { + Write-Host "[restore-runtime-prereqs] Staging runtime MSIs for architecture '$arch'" + + $msbuildArguments = @('-restore', '/t:RestoreRuntimePrereqs', "/p:TargetArchitecture=$arch") + if ($Configuration) { + $msbuildArguments += "/p:Configuration=$Configuration" + } + if ($VerboseLogging) { + $msbuildArguments += '/v:normal' + } + if ($MsbuildArgs) { + $msbuildArguments += $MsbuildArgs + } + $msbuildArguments += $bundleProject + + & $msbuildScript -warnAsError:$false -nodeReuse:$false -ci:$CI @msbuildArguments + if ($LASTEXITCODE -ne 0) { + throw "RestoreRuntimePrereqs failed for architecture '$arch'" + } + + $prereqDir = Join-Path $repoRoot "artifacts/prereqs/$arch" + if (Test-Path $prereqDir) { + Write-Host "[restore-runtime-prereqs] Contents of ${prereqDir}:" -ForegroundColor Cyan + $msis = Get-ChildItem -Path $prereqDir -Filter "dotnet-*-win-$arch*.msi" -ErrorAction SilentlyContinue | Sort-Object Name + if ($msis) { + $msis | ForEach-Object { Write-Host " $_" } + } + else { + Write-Host " (no runtime MSI files were found in the staging directory)" + } + + $resolved = Join-Path $prereqDir 'resolved-runtime-version.txt' + if (Test-Path $resolved) { + Write-Host " $(Get-Content $resolved -ErrorAction SilentlyContinue)" + } + } +} diff --git a/global.json b/global.json index a688d7936..abeaa39b0 100644 --- a/global.json +++ b/global.json @@ -19,8 +19,10 @@ }, "msbuild-sdks": { "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25509.106", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25509.106", "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25509.106", "Microsoft.Build.NoTargets": "3.7.0", - "Microsoft.Build.Traversal": "3.4.0" + "Microsoft.Build.Traversal": "3.4.0", + "Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2737382" } } diff --git a/src/windowsdesktop/src/Directory.Build.props b/src/windowsdesktop/src/Directory.Build.props index ea1aa10d0..300a06f35 100644 --- a/src/windowsdesktop/src/Directory.Build.props +++ b/src/windowsdesktop/src/Directory.Build.props @@ -8,11 +8,22 @@ - win-$(TargetArchitecture) + + + win-$(TargetArchitecture) + + true + + + + + + diff --git a/src/windowsdesktop/src/bundle/DotNetLogo_256x.png b/src/windowsdesktop/src/bundle/DotNetLogo_256x.png new file mode 100644 index 000000000..3ff052f83 Binary files /dev/null and b/src/windowsdesktop/src/bundle/DotNetLogo_256x.png differ diff --git a/src/windowsdesktop/src/bundle/Microsoft.WindowsDesktop.App.Bundle.bundleproj b/src/windowsdesktop/src/bundle/Microsoft.WindowsDesktop.App.Bundle.bundleproj deleted file mode 100644 index 44c0cd1bc..000000000 --- a/src/windowsdesktop/src/bundle/Microsoft.WindowsDesktop.App.Bundle.bundleproj +++ /dev/null @@ -1,58 +0,0 @@ - - - - Windows Desktop Shared Framework Bundle Installer - win-x64;win-x86;win-arm64 - $(MSBuildProjectDirectory) - windowsdesktop-runtime - Runtime - - - - - - - - - - <_RuntimeIdentifierForNETCoreMsiRestore Include="$(RuntimeIdentifiers)" /> - - - - - - - - - - - - - - - - - - - - - <_BundledComponents - Include="@(NETCoreAppInstallerMsiRID -> '%(CacheDir)%(MsiFileName)')" - Condition="'$(RuntimeIdentifier)' == '%(Identity)'" /> - - - - diff --git a/src/windowsdesktop/src/bundle/Product.targets b/src/windowsdesktop/src/bundle/Product.targets new file mode 100644 index 000000000..87bbcd3cb --- /dev/null +++ b/src/windowsdesktop/src/bundle/Product.targets @@ -0,0 +1,100 @@ + + + $(IntermediateOutputPath)dark\ + $(BaseIntermediateOutputPath) + $(DefineConstants);DepsPath=$(DepsPath) + $(DefineConstants);InstallersOutputPath=$(InstallersOutputPath) + + + + + DotNetRedistLtsInstaller + + + DotNetRedistHostInstaller + + + DotNetRedistHostfxrInstaller + + + + + + DotNetRedistLtsInstaller + + + DotNetRedistHostInstaller + + + DotNetRedistHostfxrInstaller + + + + + + DotNetRedistLtsInstaller + + + DotNetRedistHostInstaller + + + DotNetRedistHostfxrInstaller + + + + + + + + + dotnet-runtime-$(MicrosoftNETCoreAppRefVersion)-win-$(TargetArchitecture).msi + dotnet-runtime-win-$(TargetArchitecture).msi + + + dotnet-host-$(MicrosoftNETCoreAppRefVersion)-win-$(TargetArchitecture).msi + dotnet-host-win-$(TargetArchitecture).msi + + + dotnet-hostfxr-$(MicrosoftNETCoreAppRefVersion)-win-$(TargetArchitecture).msi + dotnet-hostfxr-win-$(TargetArchitecture).msi + + + + + + + + + + + <_CurrentRemoteAsset>%(RemoteAsset.Identity) + + + + + + + + + + + + + + + + + $(DefineConstants);DotNetRedistLtsInstaller=$(DepsPath)$(DotNetRedistLtsInstaller) + $(DefineConstants);DotNetRedistHostInstaller=$(DepsPath)$(DotNetRedistHostInstaller) + $(DefineConstants);DotNetRedistHostfxrInstaller=$(DepsPath)$(DotNetRedistHostfxrInstaller) + true + + + diff --git a/src/windowsdesktop/src/bundle/Wix.props b/src/windowsdesktop/src/bundle/Wix.props new file mode 100644 index 000000000..17c1ba34a --- /dev/null +++ b/src/windowsdesktop/src/bundle/Wix.props @@ -0,0 +1,40 @@ + + + Release + x64 + ENU + en-US + + + + + ICE61 + 1033 + + full + + true + + + + false + + E1FD1271-E0F0-4B8B-B4BE-01F2EBA58F4E + + + + $(DefineConstants);files=$(MSBuildThisFileDirectory)files + $(DefineConstants);Culture=$(Cultures) + + + + + + $(ArtifactsObjDir)WixCommandPackages + + $(InstallersOutputPath) + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/Wix.targets b/src/windowsdesktop/src/bundle/Wix.targets new file mode 100644 index 000000000..5f531d5c3 --- /dev/null +++ b/src/windowsdesktop/src/bundle/Wix.targets @@ -0,0 +1,384 @@ + + + + + + + + $(ArtifactsRoot)prereqs\$(TargetArchitecture)\ + $(MSBuildThisFileDirectory)..\..\..\..\artifacts\prereqs\$(TargetArchitecture)\ + $(BaseIntermediateOutputPath)runtime-prereqs\$(TargetArchitecture)\ + + + + + dotnet-host-$(MicrosoftNETCoreAppRefVersion)-win-$(TargetArchitecture).msi + dotnet-host-win-$(TargetArchitecture).msi + Host + $(RuntimePrereqDownloadDirectory)%(TargetFilename) + $(RuntimePrereqStageDirectory)%(StageFilename) + + + dotnet-hostfxr-$(MicrosoftNETCoreAppRefVersion)-win-$(TargetArchitecture).msi + dotnet-hostfxr-win-$(TargetArchitecture).msi + HostFxr + $(RuntimePrereqDownloadDirectory)%(TargetFilename) + $(RuntimePrereqStageDirectory)%(StageFilename) + + + dotnet-runtime-$(MicrosoftNETCoreAppRefVersion)-win-$(TargetArchitecture).msi + dotnet-runtime-win-$(TargetArchitecture).msi + Runtime + $(RuntimePrereqDownloadDirectory)%(TargetFilename) + $(RuntimePrereqStageDirectory)%(StageFilename) + + + + + + %(RemoteAsset.TargetFileName) + + + %(RemoteAsset.Filename)%(RemoteAsset.Extension) + + + %(RemoteAsset.TargetFilename) + + + $(RuntimePrereqDownloadDirectory)%(RemoteAsset.TargetFilename) + + + $(RuntimePrereqStageDirectory)%(RemoteAsset.StageFilename) + + + + + + + + + + <_CurrentRemoteAsset>%(RemoteAsset.Identity) + <_CurrentDestination>%(RemoteAsset.DownloadDestination) + + + + + + + + + + + + + + $(ArtifactsRoot)prereqs\$(TargetArchitecture)\ + $(MSBuildThisFileDirectory)..\..\..\..\artifacts\prereqs\$(TargetArchitecture)\ + $(BaseIntermediateOutputPath)runtime-prereqs\$(TargetArchitecture)\ + <_TransportPackageRoot>$(PkgMicrosoft_Internal_Runtime_WindowsDesktop_Transport) + + + + + + <_DownloadedRuntime Include="@(RemoteAsset)" Condition="Exists('%(DownloadDestination)')"> + %(DownloadDestination) + + + + + <_TransportAsset Include="@(RemoteAsset->'$(_TransportPackageRoot)**\%(TargetFilename)')"> + %(RemoteAsset.AssetKind) + %(RemoteAsset.StageDestination) + %(RemoteAsset.DownloadDestination) + %(FullPath) + + <_TransportAsset Remove="@(_TransportAsset)" Condition="!Exists('%(ResolvedSource)')" /> + + + + <_RuntimeSource Include="@(_DownloadedRuntime)" /> + <_RuntimeSource Include="@(_TransportAsset)" Condition="!Exists('%(DownloadDestination)')" /> + + + + + + <_StagedHost Include="$(RuntimePrereqStageDirectory)dotnet-host-win-$(TargetArchitecture).msi" Condition="Exists('$(RuntimePrereqStageDirectory)dotnet-host-win-$(TargetArchitecture).msi')" /> + <_StagedHostFxr Include="$(RuntimePrereqStageDirectory)dotnet-hostfxr-win-$(TargetArchitecture).msi" Condition="Exists('$(RuntimePrereqStageDirectory)dotnet-hostfxr-win-$(TargetArchitecture).msi')" /> + <_StagedRuntime Include="$(RuntimePrereqStageDirectory)dotnet-runtime-win-$(TargetArchitecture).msi" Condition="Exists('$(RuntimePrereqStageDirectory)dotnet-runtime-win-$(TargetArchitecture).msi')" /> + + + + + + + + + + + + + + + + + + + <_PrereqSearchPath1>$(ArtifactsRoot)prereqs\$(TargetArchitecture)\ + <_PrereqSearchPath1 Condition="'$(ArtifactsRoot)'==''">$(MSBuildThisFileDirectory)..\..\..\..\artifacts\prereqs\$(TargetArchitecture)\ + + + <_PrereqSearchPath2>$(ArtifactsPackagesDir)Shipping\ + <_PrereqSearchPath2 Condition="'$(ArtifactsPackagesDir)'==''">$(MSBuildThisFileDirectory)..\..\..\..\artifacts\packages\Shipping\ + + + <_PrereqSearchPath3>$(ArtifactsPackagesDir)Debug\Shipping\ + <_PrereqSearchPath3 Condition="'$(ArtifactsPackagesDir)'==''">$(MSBuildThisFileDirectory)..\..\..\..\artifacts\packages\Debug\Shipping\ + + + <_PrereqSearchPath4>$(ArtifactsRoot)bin\$(TargetArchitecture)\ + <_PrereqSearchPath4 Condition="'$(ArtifactsRoot)'==''">$(MSBuildThisFileDirectory)..\..\..\..\artifacts\bin\$(TargetArchitecture)\ + + + + + + <_PrereqHost Include="$(_PrereqSearchPath1)dotnet-host-win-$(TargetArchitecture).msi" Condition="Exists('$(_PrereqSearchPath1)dotnet-host-win-$(TargetArchitecture).msi')" /> + <_PrereqHost Include="$(_PrereqSearchPath2)dotnet-host-win-$(TargetArchitecture).msi" Condition="'@(_PrereqHost)'=='' AND Exists('$(_PrereqSearchPath2)dotnet-host-win-$(TargetArchitecture).msi')" /> + <_PrereqHost Include="$(_PrereqSearchPath3)dotnet-host-win-$(TargetArchitecture).msi" Condition="'@(_PrereqHost)'=='' AND Exists('$(_PrereqSearchPath3)dotnet-host-win-$(TargetArchitecture).msi')" /> + <_PrereqHost Include="$(_PrereqSearchPath4)dotnet-host-win-$(TargetArchitecture).msi" Condition="'@(_PrereqHost)'=='' AND Exists('$(_PrereqSearchPath4)dotnet-host-win-$(TargetArchitecture).msi')" /> + + <_PrereqHostFxr Include="$(_PrereqSearchPath1)dotnet-hostfxr-win-$(TargetArchitecture).msi" Condition="Exists('$(_PrereqSearchPath1)dotnet-hostfxr-win-$(TargetArchitecture).msi')" /> + <_PrereqHostFxr Include="$(_PrereqSearchPath2)dotnet-hostfxr-win-$(TargetArchitecture).msi" Condition="'@(_PrereqHostFxr)'=='' AND Exists('$(_PrereqSearchPath2)dotnet-hostfxr-win-$(TargetArchitecture).msi')" /> + <_PrereqHostFxr Include="$(_PrereqSearchPath3)dotnet-hostfxr-win-$(TargetArchitecture).msi" Condition="'@(_PrereqHostFxr)'=='' AND Exists('$(_PrereqSearchPath3)dotnet-hostfxr-win-$(TargetArchitecture).msi')" /> + <_PrereqHostFxr Include="$(_PrereqSearchPath4)dotnet-hostfxr-win-$(TargetArchitecture).msi" Condition="'@(_PrereqHostFxr)'=='' AND Exists('$(_PrereqSearchPath4)dotnet-hostfxr-win-$(TargetArchitecture).msi')" /> + + <_PrereqRuntime Include="$(_PrereqSearchPath1)dotnet-runtime-win-$(TargetArchitecture).msi" Condition="Exists('$(_PrereqSearchPath1)dotnet-runtime-win-$(TargetArchitecture).msi')" /> + <_PrereqRuntime Include="$(_PrereqSearchPath2)dotnet-runtime-win-$(TargetArchitecture).msi" Condition="'@(_PrereqRuntime)'=='' AND Exists('$(_PrereqSearchPath2)dotnet-runtime-win-$(TargetArchitecture).msi')" /> + <_PrereqRuntime Include="$(_PrereqSearchPath3)dotnet-runtime-win-$(TargetArchitecture).msi" Condition="'@(_PrereqRuntime)'=='' AND Exists('$(_PrereqSearchPath3)dotnet-runtime-win-$(TargetArchitecture).msi')" /> + <_PrereqRuntime Include="$(_PrereqSearchPath4)dotnet-runtime-win-$(TargetArchitecture).msi" Condition="'@(_PrereqRuntime)'=='' AND Exists('$(_PrereqSearchPath4)dotnet-runtime-win-$(TargetArchitecture).msi')" /> + + + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + + @(_PrereqHost) + @(_PrereqHostFxr) + @(_PrereqRuntime) + $(DefineConstants);DotNetRedistHostInstaller=$(DotNetRedistHostInstaller);DotNetRedistHostfxrInstaller=$(DotNetRedistHostfxrInstaller);DotNetRedistLtsInstaller=$(DotNetRedistLtsInstaller) + + + false + + + + + + windowsdesktop-runtime-$(Version)-win-$(TargetArchitecture) + $(BundleBaseName) + $(BundleBaseName) + $(TargetName)$(TargetExt) + $(TargetDir)$(TargetFileName) + $(DefineConstants);Version=$(MajorVersion).$(MinorVersion).$(PatchVersion) + <_NormalizedPreReleaseLabel>$([System.String]::Copy('$(PreReleaseVersionLabel)').ToLowerInvariant()) + <_IsPreReleaseBuild Condition="'$(_NormalizedPreReleaseLabel)' != '' AND '$(_NormalizedPreReleaseLabel)' != 'rtm'">true + <_IsPreReleaseBuild Condition="'$(_IsPreReleaseBuild)'==''">false + + $(DefineConstants);BundleVersion=$(MajorVersion).$(MinorVersion).$(PatchVersion).$(VersionSuffixDateStamp) + $(DefineConstants);BundleVersion=$(MajorVersion).$(MinorVersion).$(PatchVersion).50000 + $(DefineConstants);Manufacturer=Microsoft Corporation + $(DefineConstants);SdkBrandName=Microsoft Windows Desktop Runtime + + + x86 + x64 + arm64 + + Windows Desktop Shared Framework Bundle Installer + $(UpgradeCodeSeed) $(TargetArchitecture) $(MajorVersion).$(MinorVersion) + + $(DefineConstants);TargetArchitecture=$(TargetArchitecture) + $(DefineConstants);PlatformToken=$(TargetArchitecture.ToUpper()) + $(DefineConstants);NativeMachine_x64=x64 + $(DefineConstants);NativeMachine_arm64=arm64 + + + yes + no + $(DefineConstants);SuppressDowngradeFailure=$(SuppressDowngradeFailure) + + $(DefineConstants);MajorVersion=$(MajorVersion) + $(DefineConstants);MinorVersion=$(MinorVersion) + $(DefineConstants);WinFormsAndWpfVersion=$(WinFormsAndWpfVersion) + $(DefineConstants);DotNetRuntimeVersion=$(DotNetRuntimeVersion) + $(DefineConstants);AspNetCoreVersion=$(AspNetCoreVersion) + $(DefineConstants);MinimumVSVersion=$(MinimumVSVersion) + + $(ArtifactsPackagesDir)Shipping\windowsdesktop-runtime-$(Version)-win-$(TargetArchitecture).msi + $(DefineConstants);WindowsDesktopRuntimeMsiPath=$(WindowsDesktopRuntimeMsiPath) + + $(DefineConstants);IncludeWorkloadManifests=true + $(DefineConstants);IncludeWorkloadManifests=false + + + false + <_HasIncludeRuntimeConstant>$([System.String]::Copy('$(DefineConstants)')).Contains('IncludeRuntimeMSIs=') + $([System.String]::Copy('$(DefineConstants)').Replace('IncludeRuntimeMSIs=true', 'IncludeRuntimeMSIs=$(IncludeRuntimeMSIs)').Replace('IncludeRuntimeMSIs=false', 'IncludeRuntimeMSIs=$(IncludeRuntimeMSIs)')) + $(DefineConstants);IncludeRuntimeMSIs=$(IncludeRuntimeMSIs) + IncludeRuntimeMSIs=$(IncludeRuntimeMSIs) + + + + + + + + + $(OutputName).exe + $(ArtifactsPackagesDir)Shipping\$(BundleShippingName) + + + + + + + + + $(UpgradeCodeSeed) $(TargetArchitecture) $(MajorVersion).$(MinorVersion) + + + + + + + + + + + + $(DefineConstants);ProviderKey={$(GeneratedProviderKey)} + $(DefineConstants);UpgradeCode={$(GeneratedUpgradeCode)} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $(IntermediateOutputPath)wixpack + + $(WixCommandPackagesDir) + $(ArtifactsPackagesDir)NonShipping + $(WixpackOutputDir)\$(TargetFileName).wixpack.zip + $(OutputName).exe + + $(WixpackOutputDir)\$(BundleShippingName).wixpack.zip + + <_BundlePdbFile>$(TargetDir)$(TargetName).wixpdb + + + + + + + + + + + <_WixBuildCommandPackageNameOutput Condition="'$(_WixBuildCommandPackageNameOutput)' != '' AND '$(ExpectedBundleWixpackFile)' != ''">$(ExpectedBundleWixpackFile) + + + + + diff --git a/src/windowsdesktop/src/bundle/bundle.thm b/src/windowsdesktop/src/bundle/bundle.thm index 845b5cbd2..7577725a5 100644 --- a/src/windowsdesktop/src/bundle/bundle.thm +++ b/src/windowsdesktop/src/bundle/bundle.thm @@ -1,114 +1,146 @@ - - - #(loc.Caption) - Segoe UI - Segoe UI - Segoe UI - Segoe UI - Segoe UI - Segoe UI - - #(loc.Title) + + + + Segoe UI + Segoe UI + Segoe UI + + Segoe UI + + + + + + + + diff --git a/src/windowsdesktop/src/bundle/bundle.wixproj b/src/windowsdesktop/src/bundle/bundle.wixproj new file mode 100644 index 000000000..812908291 --- /dev/null +++ b/src/windowsdesktop/src/bundle/bundle.wixproj @@ -0,0 +1,103 @@ + + + + + + + Bundle + + + false + 1 + + + true + + + x86 + x86 + + + $(NoWarn);WIX1098 + + + $(DefaultItemExcludes);LCID\**\*;theme\**\* + + + + + + + + + + + + + + + + + + + + + <_BundleOutputDir>$(TargetDir) + <_BundleShippingDir Condition="'$(ArtifactsPackagesDir)' != ''">$(ArtifactsPackagesDir)Shipping\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/windowsdesktop/src/bundle/bundle.wxs b/src/windowsdesktop/src/bundle/bundle.wxs new file mode 100644 index 000000000..3ceb7baec --- /dev/null +++ b/src/windowsdesktop/src/bundle/bundle.wxs @@ -0,0 +1,338 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/dotnet-packages.wxs b/src/windowsdesktop/src/bundle/dotnet-packages.wxs new file mode 100644 index 000000000..1f4ee1936 --- /dev/null +++ b/src/windowsdesktop/src/bundle/dotnet-packages.wxs @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/windowsdesktop/src/bundle/dotnet.ico b/src/windowsdesktop/src/bundle/dotnet.ico new file mode 100644 index 000000000..16c9148e8 Binary files /dev/null and b/src/windowsdesktop/src/bundle/dotnet.ico differ diff --git a/src/windowsdesktop/src/bundle/dummyeula.rtf b/src/windowsdesktop/src/bundle/dummyeula.rtf new file mode 100644 index 000000000..267410d67 --- /dev/null +++ b/src/windowsdesktop/src/bundle/dummyeula.rtf @@ -0,0 +1,7 @@ +{\rtf1\ansi\deff0 {\fonttbl {\f0 Times New Roman;}} +\f0\fs20 MICROSOFT .NET WINDOWS DESKTOP RUNTIME LICENSE +\par +\par +Please see the MIT license at https://github.com/dotnet/core/blob/main/LICENSE.TXT +\par +} diff --git a/src/windowsdesktop/src/bundle/theme/1028/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1028/bundle.wxl index 29e67c298..70429ae86 100644 --- a/src/windowsdesktop/src/bundle/theme/1028/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1028/bundle.wxl @@ -1,75 +1,87 @@ - - - [WixBundleName] 安裝程式 - [BUNDLEMONIKER] - 您只需要殼層、文字編輯器和 10 分鐘的時間。 + + + + + + + + 您確定要取消嗎? - 前一版 - 安裝程式說明 - /install | /repair | /uninstall | /layout [directory] - 在目錄中安裝、修復、解除安裝或 - 建立搭售方案的完整本機複本。預設為安裝。 +/passive | /quiet - 顯示最基本的 UI 且不出現提示,或是不顯示任何 UI 且不出現提示。預設會顯示 UI 及所有提示。 -/passive | /quiet - 顯示最少 UI 且不含提示,或者不顯示 UI,也 - 不顯示提示。預設會顯示 UI 和所有提示。 +/norestart - 抑制任何重新啟動嘗試。根據預設,UI 在重新啟動前會先提示。 -/norestart - 隱藏任何重新啟動嘗試。根據預設,UI 會在重新啟動之前提示。 -/log log.txt - 記錄至特定檔案。預設會在 %TEMP% 建立記錄檔。 - 關閉(&C) - 我同意授權條款及條件(&A) - 選項(&O) - 安裝(&I) - 關閉(&C) - 安裝選項 - 安裝位置: - 瀏覽(&B) - 確定(&O) - 取消(&C) - 安裝進度 - 處理中: - 正在初始化... - 取消(&C) - 修改安裝 - 修復(&R) - 解除安裝(&U) - 關閉(&C) - 修復已成功完成 - 解除安裝已成功完成 - 安裝成功 - 設定成功 - 啟動(&L) - 必須重新啟動電腦,才能使用此軟體。 - 重新啟動(&R) - 關閉(&C) - 設定失敗 - 安裝程式失敗 - 解除安裝失敗 - 修復失敗 - 有一個或多個問題導致安裝程式失敗。請解決問題,然後重試一次安裝。如需詳細資訊,請參閱<a href="#">記錄檔</a>。 - 必須重新啟動電腦,才能完成軟體的復原。 - 重新啟動(&R) - 關閉(&C) - 此作業系統不支援 [PRODUCT_NAME]。如需詳細資訊,請參閱 [LINK_PREREQ_PAGE]。 - x86 作業系統不支援 [PRODUCT_NAME]。請使用對應的 x86 安裝程式來安裝。 - 使用中的檔案 - 以下應用程式正在使用需要進行更新的檔案: - 關閉應用程式並嘗試重新啟動(&A) - 不關閉應用程式,需要重新啟動(&D) - 確定(&O) - 取消(&C) - Windows Desktop Runtime - .NET Windows Desktop Runtime 可用於在您的電腦上執行 Windows Forms 與 WPF 應用程式。.NET 為開放原始碼形式,且可跨平台運作,同時受到 Microsoft 支援。希望您會喜歡! - 深入了解 .NET Core - 下列項目已安裝在 [DOTNETHOME] - - [BUNDLEMONIKER] - 資源 - <A HREF="https://aka.ms/dotnet-docs">文件</A> - <A HREF="https://aka.ms/20-p2-rel-notes">版本資訊</A> - <A HREF="https://aka.ms/dotnet-tutorials">教學課程</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core 遙測</A> - <A HREF="https://aka.ms/dev-privacy">隱私權聲明</A> - <A HREF="https://aka.ms/dotnet-license-windows">.NET 的授權資訊</A> - 按一下 [\[]安裝[\[] 即表示您同意下列條款。 +/log log.txt - 記錄到特定檔案。預設會在 %TEMP% 中建立記錄檔。"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1029/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1029/bundle.wxl index adbc94401..03ac051bc 100644 --- a/src/windowsdesktop/src/bundle/theme/1029/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1029/bundle.wxl @@ -1,75 +1,87 @@ - - - Instalační program pro [WixBundleName] - [BUNDLEMONIKER] - Potřebujete jenom prostředí, textový editor a 10 minut času. + + + + + + + + Opravdu chcete akci zrušit? - Předchozí verze - Nápověda k instalaci - /install | /repair | /uninstall | /layout [adresář] – Nainstaluje, opraví, odinstaluje nebo - vytvoří úplnou místní kopii svazku v adresáři. Výchozí možností je instalace. +/passive | /quiet – Zobrazí minimální uživatelské rozhraní bez jakýchkoli výzev nebo nezobrazí žádné rozhraní ani výzvy. Ve výchozím nastavení se zobrazí uživatelské rozhraní a všechny výzvy. -/passive | /quiet – Zobrazí minimální uživatelské rozhraní bez výzev nebo nezobrazí žádné uživatelské rozhraní a - žádné výzvy. Výchozí možností je zobrazení uživatelského rozhraní a všech výzev. +/norestart – Potlačí všechny pokusy o restartování. Ve výchozím nastavení uživatelské rozhraní zobrazí před restartováním výzvu. -/norestart – potlačí všechny pokusy o restartování. Ve výchozím nastavení uživatelské rozhraní před restartováním zobrazí výzvu. -/log log.txt – Uloží protokol do konkrétního souboru. Ve výchozím nastavení bude soubor protokolu vytvořen v adresáři %TEMP%. - &Zavřít - Souhl&asím s licenčními podmínkami. - M&ožnosti - &Instalovat - &Zavřít - Možnosti instalace - Umístění instalace: - &Procházet - &OK - &Storno - Průběh instalace - Zpracování: - Inicializuje se... - &Storno - Změnit instalaci - Op&ravit - O&dinstalovat - &Zavřít - Oprava se úspěšně dokončila. - Odinstalace se úspěšně dokončila. - Instalace proběhla úspěšně. - Instalace byla úspěšná. - &Spustit - Před použitím tohoto softwaru musíte restartovat počítač. - &Restartovat - &Zavřít - Instalace se nepovedla. - Instalace se nepovedla. - Odinstalace se nepovedla. - Oprava se nepovedla. - Instalace se nepovedla kvůli jednomu nebo více problémům. Opravte prosím tyto problémy a zkuste software nainstalovat znovu. Další informace najdete v <a href="#">souboru protokolu</a>. - Pro dokončení vrácení změn tohoto softwaru je potřeba restartovat počítač. - &Restartovat - &Zavřít - [PRODUCT_NAME] se tomto operačním systému nepodporuje. Další informace: [LINK_PREREQ_PAGE] - [PRODUCT_NAME] se v operačních systémech pro platformu x86 nepodporuje. Použijte prosím k instalaci odpovídající instalační program pro platformu x86. - Používané soubory - Následující aplikace používají soubory, které je potřeba aktualizovat: - Zavřete &aplikace a zkuste je restartovat. - A&plikace nezavírejte. Bude potřeba provést restart. - &OK - &Zrušit - Windows Desktop Runtime - Modul .NET Windows Desktop Runtime se používá ke spouštění aplikací Windows Forms a WPF na počítači. .NET je open source, k dispozici pro více platforem a podporovaný Microsoftem. Doufáme, že se vám bude líbit! - Další informace o .NET Core - Do [DOTNETHOME] se nainstalovaly následující položky. - - [BUNDLEMONIKER] - Prostředky - <A HREF="https://aka.ms/dotnet-docs">Dokumentace</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Zpráva k vydání verze</A> - <A HREF="https://aka.ms/dotnet-tutorials">Kurzy</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Telemetrie pro platformu .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Prohlášení o zásadách ochrany osobních údajů</A> - <A HREF="https://aka.ms/dotnet-license-windows">Informace o licencování pro .NET</A> - Kliknutím na Nainstalovat vyjadřujete souhlas s následujícími podmínkami. +/log log.txt – zapíše protokol do konkrétního souboru. Ve výchozím nastavení bude soubor protokolu vytvořen v adresáři %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1031/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1031/bundle.wxl index 7dac56927..ef893e894 100644 --- a/src/windowsdesktop/src/bundle/theme/1031/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1031/bundle.wxl @@ -1,75 +1,87 @@ - - - [WixBundleName]-Installer - [BUNDLEMONIKER] - Sie benötigen nur eine Shell, einen Text-Editor und 10 Minuten Zeit. + + + + + + + + Möchten Sie den Vorgang wirklich abbrechen? - Vorherige Version - Hilfe zum Setup - /install | /repair | /uninstall | /layout [Verzeichnis] - installiert, repariert, deinstalliert oder - erstellt eine vollständige lokale Kopie des Bundles im Verzeichnis. Installieren ist die Standardeinstellung. +/passive | /quiet - displays minimal UI with no prompts or displays no UI and no prompts. By default UI and all prompts are displayed. -/passive | /quiet - zeigt eine minimale Benutzeroberfläche ohne Eingabeaufforderungen oder keine - Benutzeroberfläche und keine Eingabeaufforderungen an. Standardmäßig werden die Benutzeroberfläche und alle Eingabeaufforderungen angezeigt. +/norestart - suppress any attempts to restart. By default UI will prompt before restart. -/norestart - Unterdrückt alle Neustartversuche. Standardmäßig fordert die Benutzeroberfläche zum Bestätigen eines Neustarts auf. -/log log.txt - Erstellt das Protokoll in einer bestimmten Datei. Standardmäßig wird die Protokolldatei in %TEMP% erstellt. - S&chließen - Ich &stimme den Lizenzbedingungen zu. - &Optionen - &Installieren - S&chließen - Setupoptionen - Installationspfad: - &Durchsuchen - &OK - &Abbrechen - Setupstatus - Wird verarbeitet: - Initialisierung... - &Abbrechen - Setup ändern - &Reparieren - &Deinstallieren - S&chließen - Die Reparatur wurde erfolgreich abgeschlossen. - Die Deinstallation wurde erfolgreich abgeschlossen. - Die Installation war erfolgreich. - Setup wurde erfolgreich abgeschlossen - &Starten - Sie müssen den Computer neu starten, bevor Sie die Software verwenden können. - &Neu starten - S&chließen - Setupfehler - Setupfehler - Deinstallationsfehler - Reparaturfehler - Setup ist aufgrund eines oder mehrerer Probleme fehlgeschlagen. Beheben Sie die Probleme, und führen Sie das Setup erneut aus. Weitere Informationen finden Sie in der <a href="#">Protokolldatei</a>. - Sie müssen den Computer neu starten, um das Zurücksetzen der Software abzuschließen. - &Neu starten - &Schließen - [PRODUCT_NAME] wird auf diesem Betriebssystem nicht unterstützt. Weitere Informationen finden Sie unter [LINK_PREREQ_PAGE]. - [PRODUCT_NAME] wird auf x86-Betriebssystemen nicht unterstützt. Installieren Sie das entsprechende x86-Installationsprogramm. - Verwendete Dateien - Die folgenden Anwendungen verwenden Dateien, die aktualisiert werden müssen: - Schließen Sie die &Anwendungen, und versuchen Sie sie erneut zu starten. - &Anwendungen nicht schließen. Ein Neustart ist erforderlich. - &OK - &Abbrechen - Windows Desktop-Runtime - Die .NET Windows Desktop-Runtime wird zum Ausführen von Windows Forms- und WPF-Anwendungen auf Ihrem Computer verwendet. .NET ist ein plattformübergreifendes Open-Source-Framework, das von Microsoft unterstützt wird. Wir wünschen Ihnen viel Spaß damit! - Weitere Informationen zu .NET Core - Folgendes wurde unter [DOTNETHOME] installiert. - - [BUNDLEMONIKER] - Ressourcen - <A HREF="https://aka.ms/dotnet-docs">Dokumentation</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Versionshinweise</A> - <A HREF="https://aka.ms/dotnet-tutorials">Tutorials</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core-Telemetrie</A> - <A HREF="https://aka.ms/dev-privacy">Datenschutzerklärung</A> - <A HREF="https://aka.ms/dotnet-license-windows">Lizenzierungsinformationen für .NET</A> - Durch Klicken auf "Installieren" stimmen Sie den nachstehenden Bedingungen zu. +/log log.txt - logs to a specific file. By default a log file is created in %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1033/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1033/bundle.wxl index 259b5dcff..580dca65a 100644 --- a/src/windowsdesktop/src/bundle/theme/1033/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1033/bundle.wxl @@ -1,75 +1,81 @@ - - - [WixBundleName] Installer - [BUNDLEMONIKER] - You just need a shell, a text editor and 10 minutes of your time. - -Ready? Set? Let's go! - Are you sure you want to cancel? - Previous version - Setup Help - /install | /repair | /uninstall | /layout [directory] - installs, repairs, uninstalls or - creates a complete local copy of the bundle in directory. Install is the default. - -/passive | /quiet - displays minimal UI with no prompts or displays no UI and - no prompts. By default UI and all prompts are displayed. - -/norestart - suppress any attempts to restart. By default UI will prompt before restart. -/log log.txt - logs to a specific file. By default a log file is created in %TEMP%. - &Close - I &agree to the license terms and conditions - &Options - &Install - &Close - Setup Options - Install location: - &Browse - &OK - &Cancel - Setup Progress - Processing: - Initializing... - &Cancel - Modify Setup - &Repair - &Uninstall - &Close - Repair Successfully Completed - Uninstall Successfully Completed - Installation was successful - Setup Successful - &Launch - You must restart your computer before you can use the software. - &Restart - &Close - Setup Failed - Setup Failed - Uninstall Failed - Repair Failed - One or more issues caused the setup to fail. Please fix the issues and then retry setup. For more information see the <a href="#">log file</a>. - You must restart your computer to complete the rollback of the software. - &Restart - &Close - The [PRODUCT_NAME] is not supported on this operating system. For more information, see [LINK_PREREQ_PAGE]. - The [PRODUCT_NAME] isn't supported on x86 operating systems. Please install using the corresponding x86 installer. - Files In Use - The following applications are using files that need to be updated: - Close the &applications and attempt to restart them. - &Do not close applications. A reboot will be required. - &OK - &Cancel - Windows Desktop Runtime - The .NET Windows Desktop Runtime is used to run Windows Forms and WPF applications, on your computer. .NET is open source, cross platform, and supported by Microsoft. We hope you enjoy it! - Learn more about .NET Core - The following was installed at [DOTNETHOME] - - [BUNDLEMONIKER] - Resources - <A HREF="https://aka.ms/dotnet-docs">Documentation</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Release Notes</A> - <A HREF="https://aka.ms/dotnet-tutorials">Tutorials</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core Telemetry</A> - <A HREF="https://aka.ms/dev-privacy">Privacy Statement</A> - <A HREF="https://aka.ms/dotnet-license-windows">Licensing Information for .NET</A> - By clicking Install, you agree to the following terms. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1036/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1036/bundle.wxl index d55154001..c2ca1118e 100644 --- a/src/windowsdesktop/src/bundle/theme/1036/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1036/bundle.wxl @@ -1,75 +1,87 @@ - - - Programme d'installation de [WixBundleName] - [BUNDLEMONIKER] - Vous avez juste besoin d'un interpréteur de commandes, d'un éditeur de texte et de 10 minutes. + + + + + + + + Voulez-vous vraiment annuler ? - Version précédente - Aide à l'installation - /install | /repair | /uninstall | /layout [répertoire] - installe, répare, désinstalle ou - crée une copie locale complète du bundle dans le répertoire. Install est l'option par défaut. +/passive | /quiet – permet d’afficher une interface utilisateur minimale sans aucune requête ou de n’afficher ni interface utilisateur, ni requêtes. Par défaut, l’interface utilisateur et toutes les requêtes sont affichées. -/passive | /quiet - affiche une interface utilisateur minimale, sans invite, ou n'affiche - ni interface utilisateur, ni invite. Par défaut, l'interface utilisateur et toutes les invites sont affichées. +/norestart – permet de supprimer toutes les tentatives de redémarrage. Par défaut, l’interface utilisateur vous invite à redémarrer. -/norestart - supprime toutes les tentatives de redémarrage. Par défaut, l'interface utilisateur affiche une invite avant le redémarrage. -/log log.txt - enregistre les informations dans un fichier spécifique. Par défaut, un fichier journal est créé dans %TEMP%. - &Fermer - J'&accepte les conditions générales de la licence - &Options - &Installer - &Fermer - Options d'installation - Emplacement de l'installation : - &Parcourir - &OK - &Annuler - Progression de l'installation - En cours : - Initialisation... - &Annuler - Modifier l'installation - &Réparer - &Désinstaller - &Fermer - Réparation terminée avec succès - Désinstallation terminée avec succès - Installation réussie - Installation/désinstallation réussie - &Démarrer - Vous devez redémarrer votre ordinateur avant de pouvoir utiliser le logiciel. - &Redémarrer - &Fermer - Échec de l'installation - Échec de l'installation - Échec de la désinstallation - Échec de la réparation - Un ou plusieurs problèmes sont à l'origine de l'échec de l'installation. Corrigez ces problèmes, puis recommencez l'installation. Pour plus d'informations, voir le <a href="#">fichier journal</a>. - Vous devez redémarrer votre ordinateur pour terminer l'opération de restauration du logiciel. - &Redémarrer - &Fermer - [PRODUCT_NAME] n'est pas pris en charge sur ce système d'exploitation. Pour plus d'informations, consultez [LINK_PREREQ_PAGE]. - [PRODUCT_NAME] n'est pas pris en charge sur les systèmes d'exploitation x86. Effectuez l'installation à l'aide du programme d'installation x86 correspondant. - Fichiers en cours d'utilisation - Les applications suivantes utilisent des fichiers nécessitant une mise à jour : - &Fermez les applications, puis essayez de les redémarrer. - &Ne pas fermer les applications. Un redémarrage sera nécessaire. - &OK - &Annuler - Runtime Windows Desktop - Le runtime .NET Windows Desktop vous permet d'exécuter les applications Windows Forms et WPF sur votre ordinateur. .NET est open source, multiplateforme et pris en charge par Microsoft. Nous espérons que vous l'apprécierez ! - En savoir plus sur .NET Core - L'élément suivant a été installé sur [DOTNETHOME] - - [BUNDLEMONIKER] - Ressources - <A HREF="https://aka.ms/dotnet-docs">Documentation</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Notes de publication</A> - <A HREF="https://aka.ms/dotnet-tutorials">Tutoriels</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Télémétrie .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Déclaration de confidentialité</A> - <A HREF="https://aka.ms/dotnet-license-windows">Informations de licence pour .NET</A> - En cliquant sur Installer, vous acceptez les conditions suivantes. +/log log.txt – permet d’enregistrer dans un fichier spécifique. Par défaut, un fichier journal est créé dans %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1040/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1040/bundle.wxl index 41eecb4d4..ff0ff351d 100644 --- a/src/windowsdesktop/src/bundle/theme/1040/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1040/bundle.wxl @@ -1,75 +1,87 @@ - - - Programma di installazione di [WixBundleName] - [BUNDLEMONIKER] - Bastano solo una shell, un editor di testo e 10 minuti di tempo. + + + + + + + + Annullare? - Versione precedente - Guida alla configurazione - /install | /repair | /uninstall | /layout [directory] - installa, ripara, disinstalla o - crea una copia locale completa del bundle nella directory. L'opzione predefinita è install. +/passive | /quiet - Consente di visualizzare un'interfaccia utente minima senza richieste o di non visualizzare alcuna interfaccia utente e alcuna richiesta. Per impostazione predefinita, vengono visualizzate l'interfaccia utente e tutte le richieste. -/passive | /quiet - visualizza un'interfaccia utente minima senza prompt oppure non visualizza alcuna interfaccia utente - né prompt. Per impostazione predefinita, viene visualizzata l'intera interfaccia utente e tutti i prompt. +/norestart - Consente di impedire qualsiasi tentativo di riavvio. Per impostazione predefinita, prima del riavvio verrà visualizzata una richiesta nell'interfaccia utente. -/norestart - annulla qualsiasi tentativo di riavvio. Per impostazione predefinita, l'interfaccia utente visualizza una richiesta prima del riavvio. -/log log.txt - registra il log in un file specifico. Per impostazione predefinita, viene creato un file di log in %TEMP%. - &Chiudi - &Accetto i termini e le condizioni di licenza - &Opzioni - &Installa - &Chiudi - Opzioni di installazione - Percorso di installazione: - &Sfoglia - &OK - &Annulla - Stato installazione - Elaborazione di: - Inizializzazione in corso... - &Annulla - Modifica installazione - &Ripristina - &Disinstalla - &Chiudi - La riparazione è stata completata - La disinstallazione è stata completata - L'installazione è riuscita - L'installazione è stata completata - &Avvia - Per poter usare il software, è necessario riavviare il computer. - &Riavvia - &Chiudi - L'installazione non è riuscita - L'installazione non è riuscita - La disinstallazione non è riuscita - La riparazione non è riuscita - L'installazione non è riuscita a causa di uno o più problemi. Risolvere i problemi e ripetere l'installazione. Per altre informazioni, vedere il <a href="#">file di log</a>. - Per completare il rollback del software, è necessario riavviare il computer. - &Riavvia - &Chiudi - [PRODUCT_NAME] non è supportato in questo sistema operativo. Per altre informazioni, vedere [LINK_PREREQ_PAGE]. - [PRODUCT_NAME] non è supportato in sistemi operativi x86. Eseguire l'installazione usando il programma di installazione x86 corrispondente. - File in uso - Le applicazioni seguenti usano file che necessitano di aggiornamento: - Chiudere le &applicazioni e provare a riavviarle. - &Non chiudere le applicazioni; sarà necessario riavviare il sistema - &OK - &Annulla - Runtime di Windows Desktop - Runtime di Windows Desktop consente di eseguire applicazioni Windows Forms e WPF nel computer. .NET è open source, multipiattaforma e supportato da Microsoft. - Altre informazioni su .NET Core - I componenti seguenti sono stati installati in [DOTNETHOME] - - [BUNDLEMONIKER] - Risorse - <A HREF="https://aka.ms/dotnet-docs">Documentazione</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Note sulla versione</A> - <A HREF="https://aka.ms/dotnet-tutorials">Esercitazioni</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Telemetria di .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Informativa sulla privacy</A> - <A HREF="https://aka.ms/dotnet-license-windows">Informazioni sulla licenza per .NET</A> - Facendo clic su Installa, si accettano le condizioni seguenti. +/log log.txt - Consente di eseguire la registrazione in un file specifico. Per impostazione predefinita, viene creato un file di log in %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1041/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1041/bundle.wxl index ef7c5b253..bc8bff525 100644 --- a/src/windowsdesktop/src/bundle/theme/1041/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1041/bundle.wxl @@ -1,76 +1,87 @@ - - - [WixBundleName] インストーラー - [BUNDLEMONIKER] - 必要なのは、シェル、テキスト エディター、それに時間が 10 分のみです。 + + + + + + + + 取り消しますか? - 以前のバージョン - セットアップのヘルプ - /install | /repair | /uninstall | /layout [directory] - バンドルの完全なローカル コピーに対する - ディレクトリへのインストール、修復、ディレクトリからのアンインストール、またはディレクトリ内への - 作成を行います。既定の設定はインストールです。 +/passive | /quiet - displays minimal UI with no prompts or displays no UI and no prompts. By default UI and all prompts are displayed. -/passive | /quiet - 最小限の UI だけを表示しプロンプトは表示しない、または UI もプロンプトも - 表示しません。既定では UI とすべてのプロンプトが表示されます。 +/norestart - suppress any attempts to restart. By default UI will prompt before restart. -/norestart - 再起動を抑制します。既定では再起動前に確認メッセージが表示されます。 -/log log.txt - 特定のファイルに記録します。ログ ファイルは既定では %TEMP% に作成されます。 - 閉じる(&C) - ライセンス条項および使用条件に同意する(&A) - オプション(&O) - インストール(&I) - 閉じる(&C) - セットアップ オプション - インストール場所: - 参照(&B) - OK(&O) - キャンセル(&C) - セットアップの進行状況 - 処理中: - 初期化しています... - キャンセル(&C) - セットアップの変更 - 修復(&R) - アンインストール(&U) - 閉じる(&C) - 修復が正常に完了しました - アンインストールが正常に完了しました - インストールが正常に終了しました - セットアップ完了 - 起動(&L) - ソフトウェアを使用する前にコンピューターを再起動する必要があります。 - 再起動(&R) - 閉じる(&C) - セットアップ失敗 - セットアップに失敗しました - アンインストールに失敗しました - 修復に失敗しました - 1 つまたは複数の問題により、セットアップが失敗しました。問題を解決してからセットアップを再試行してください。詳細については、<a href="#">ログ ファイル</a>を参照してください。 - ソフトウェアのロールバックを完了するには、コンピューターを再起動する必要があります。 - 再起動(&R) - 閉じる(&C) - [PRODUCT_NAME] は、このオペレーティング システムではサポートされていません。詳細については、[LINK_PREREQ_PAGE] を参照してください。 - x86 オペレーティング システムでは、[PRODUCT_NAME] はサポートされていません。対応する x86 インストーラーを使用してインストールしてください。 - ファイルが使用中 - 次のアプリケーションは、更新の必要があるファイルを使用しています: - アプリケーションを閉じて再起動を試みる。(&A) - アプリケーションを終了させない (コンピューターの再起動が必要になります)(&D) - OK(&O) - キャンセル(&C) - Windows Desktop Runtime - .NET Windows Desktop Runtime は、ご使用のコンピューターで Windows フォームおよび .NET アプリケーションを実行するために使用されます。.NET はオープン ソースのクロス プラットフォームで、Microsoft によってサポートされています。ぜひご利用ください。 - .Net Core の詳細 - [DOTNETHOME] に以下がインストールされました - - [BUNDLEMONIKER] - リソース - <A HREF="https://aka.ms/dotnet-docs">ドキュメント</A> - <A HREF="https://aka.ms/20-p2-rel-notes">リリース ノート</A> - <A HREF="https://aka.ms/dotnet-tutorials">チュートリアル</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core テレメトリ</A> - <A HREF="https://aka.ms/dev-privacy">プライバシーに関する声明</A> - <A HREF="https://aka.ms/dotnet-license-windows">.NET のライセンス情報</A> - [インストール] をクリックすると、次の条項に同意したものと見なされます。 +/log log.txt - logs to a specific file. By default a log file is created in %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1042/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1042/bundle.wxl index 3c4f00960..560ac568d 100644 --- a/src/windowsdesktop/src/bundle/theme/1042/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1042/bundle.wxl @@ -1,75 +1,87 @@ - - - [WixBundleName] 설치 관리자 - [BUNDLEMONIKER] - 셸, 텍스트 편집기, 10분의 시간만 있으면 됩니다. + + + + + + + + 취소하시겠습니까? - 이전 버전 - 설치 도움말 - /install | /repair | /uninstall | /layout [directory] - 디렉터리에 번들의 전체 로컬 복사본을 설치, 복구, 제거 또는 - 작성합니다. 설치가 기본값입니다. +/passive | /quiet - 프롬프트 없이 최소 UI를 표시하거나 UI 및 프롬프트를 모두 표시하지 않습니다. 기본적으로 UI와 모든 프롬프트가 표시됩니다. -/passive | /quiet - 프롬프트 없이 최소 UI를 표시하거나 UI 및 - 프롬프트를 표시하지 않습니다. 기본적으로 UI와 모든 프롬프트가 표시됩니다. +/norestart - 다시 시작 시도를 중지합니다. 기본적으로 UI는 다시 시작하기 전에 메시지를 표시합니다. -/norestart - 다시 시작하지 않게 합니다. 기본적으로 UI에서는 다시 시작하기 전에 묻는 메시지를 표시합니다. -/log log.txt - 특정 파일에 기록합니다. 기본적으로 로그 파일은 %TEMP%에 만들어집니다. - 닫기(&C) - 동의함(&A) - 옵션(&O) - 설치(&I) - 닫기(&C) - 설치 옵션 - 설치 위치: - 찾아보기(&B) - 확인(&O) - 취소(&C) - 설치 진행률 - 처리 중: - 초기화 중... - 취소(&C) - 설치 수정 - 복구(&R) - 제거(&U) - 닫기(&C) - 복구 완료됨 - 제거 완료됨 - 설치가 완료되었습니다. - 설치 완료 - 시작(&L) - 소프트웨어를 사용하려면 먼저 컴퓨터를 다시 시작해야 합니다. - 다시 시작(&R) - 닫기(&C) - 설치 실패 - 설치 실패 - 제거 실패 - 복구 실패 - 하나 이상의 문제가 발생하여 설치하지 못했습니다. 문제를 해결한 다음 설치를 다시 시도하십시오. 자세한 내용은 <a href="#">로그 파일</a>을 참조하십시오. - 소프트웨어 롤백을 완료하려면 컴퓨터를 다시 시작해야 합니다. - 다시 시작(&R) - 닫기(&C) - 이 운영 체제에서는 [PRODUCT_NAME]이(가) 지원되지 않습니다. 자세한 내용은 [LINK_PREREQ_PAGE]을(를) 참조하세요. - x86 운영 체제에서는 [PRODUCT_NAME]이(가) 지원되지 않습니다. 해당 x86 설치 관리자를 사용하여 설치하세요. - 사용 중인 파일 - 다음의 애플리케이션이 업데이트해야 할 파일을 사용 중입니다. - 애플리케이션을 닫고 다시 시작합니다(&A). - 애플리케이션을 닫지 않습니다(&D). 다시 부팅해야 합니다. - 확인(&O) - 취소(&C) - Windows 데스크톱 런타임 - .NET Windows 데스크톱 런타임은 컴퓨터에서 Windows Forms 및 WPF 애플리케이션을 실행하는 데 사용됩니다. .NET은 오픈 소스 및 플랫폼 간이며 Microsoft에서 지원합니다. .NET을 유용하게 사용하시길 바랍니다. - .NET Core에 대한 자세한 정보 - 다음이 [DOTNETHOME]에 설치되었습니다. - - [BUNDLEMONIKER] - 리소스 - <A HREF="https://aka.ms/dotnet-docs">설명서</A> - <A HREF="https://aka.ms/20-p2-rel-notes">릴리스 정보</A> - <A HREF="https://aka.ms/dotnet-tutorials">자습서</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core 원격 분석</A> - <A HREF="https://aka.ms/dev-privacy">개인정보처리방침</A> - <A HREF="https://aka.ms/dotnet-license-windows">.NET에 대한 라이선스 정보</A> - [설치]를 클릭하면 다음 사용 약관에 동의하는 것입니다. +/log log.txt - 특정 파일에 로그합니다. 기본적으로 로그 파일은 %TEMP%에 만들어집니다."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1045/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1045/bundle.wxl index ac3779bf0..662c53fa9 100644 --- a/src/windowsdesktop/src/bundle/theme/1045/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1045/bundle.wxl @@ -1,75 +1,87 @@ - - - Instalator pakietu [WixBundleName] - [BUNDLEMONIKER] - Potrzebujemy tylko powłoki, edytora tekstu i 10 minut czasu. + + + + + + + + Czy na pewno chcesz anulować? - Poprzednia wersja - Pomoc dotycząca instalacji - /install | /repair | /uninstall | /layout [katalog] - Instaluje, naprawia, odinstalowuje - lub tworzy pełną lokalną kopię pakietu w katalogu. Domyślnie jest używany przełącznik install. +/passive | /quiet - displays minimal UI with no prompts or displays no UI and no prompts. By default UI and all prompts are displayed. -/passive | /quiet - Wyświetla ograniczony interfejs użytkownika bez monitów albo nie wyświetla ani interfejsu użytkownika, - ani monitów. Domyślnie jest wyświetlany interfejs użytkownika oraz wszystkie monity. +/norestart - suppress any attempts to restart. By default UI will prompt before restart. -/norestart - Pomija próby ponownego uruchomienia. Domyślnie interfejs użytkownika wyświetla monit przed ponownym uruchomieniem. -/log log.txt - Tworzy dziennik w określonym pliku. Domyślnie plik dziennika jest tworzony w katalogu %TEMP%. - &Zamknij - &Zgadzam się z postanowieniami licencyjnymi - &Opcje - &Zainstaluj - &Zamknij - Opcje instalacji - Lokalizacja instalacji: - &Przeglądaj - &OK - &Anuluj - Postęp instalacji - Przetwarzanie: - Trwa inicjowanie... - &Anuluj - Modyfikuj instalację - &Napraw - &Odinstaluj - &Zamknij - Pomyślnie ukończono naprawę - Pomyślnie ukończono dezinstalację - Instalacja przebiegła pomyślnie - Pomyślnie ukończono instalację - &Uruchom - Aby móc korzystać z oprogramowania, musisz uruchomić ponownie komputer. - &Uruchom ponownie - &Zamknij - Instalacja nie powiodła się - Instalacja nie powiodła się - Dezinstalacja nie powiodła się - Naprawa nie powiodła się - Co najmniej jeden problem spowodował niepowodzenie instalacji. Rozwiąż problemy, a następnie ponów próbę instalacji. Aby uzyskać więcej informacji, zobacz <a href="#">plik dziennika</a>. - Aby ukończyć wycofywanie oprogramowania, musisz uruchomić ponownie komputer. - &Uruchom ponownie - &Zamknij - Produkt [PRODUCT_NAME] nie jest obsługiwany w tym systemie operacyjnym. Aby uzyskać więcej informacji, zobacz [LINK_PREREQ_PAGE]. - Produkt [PRODUCT_NAME] nie jest obsługiwany w systemach operacyjnych x86. Przeprowadź instalację przy użyciu odpowiedniego instalatora x86. - Pliki w użyciu - Następujące aplikacje korzystają z plików, które muszą zostać zaktualizowane: - Zamknij &aplikacje i spróbuj je ponownie uruchomić. - &Nie zamykaj aplikacji. Będzie konieczne ponowne uruchomienie. - &OK - &Anuluj - Środowisko uruchomieniowe dla komputerów z systemem Windows - Środowisko uruchomieniowe platformy .NET dla komputerów z systemem Windows służy do uruchamiania aplikacji Windows Forms i WPF na komputerze. Platforma .NET jest oprogramowaniem typu open source, działa na różnych platformach i jest obsługiwana przez firmę Microsoft. Mamy nadzieję, że Ci się podoba! - Dowiedz się więcej o platformie .NET Core - Następujące elementy zainstalowano w [DOTNETHOME] - - [BUNDLEMONIKER] - Zasoby - <A HREF="https://aka.ms/dotnet-docs">Dokumentacja</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Informacje o wersji</A> - <A HREF="https://aka.ms/dotnet-tutorials">Samouczki</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Telemetria programu .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Zasady zachowania poufności informacji</A> - <A HREF="https://aka.ms/dotnet-license-windows">Informacje o licencjonowaniu dla platformy .NET</A> - Klikając pozycję Zainstaluj, wyrażasz zgodę na następujące warunki. +/log log.txt - logs to a specific file. By default a log file is created in %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1046/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1046/bundle.wxl index 29e995968..d2b5053fb 100644 --- a/src/windowsdesktop/src/bundle/theme/1046/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1046/bundle.wxl @@ -1,75 +1,87 @@ - - - Instalador do [WixBundleName] - [BUNDLEMONIKER] - Você só precisa de um shell, um editor de texto e 10 minutos de seu tempo. + + + + + + + + Tem certeza de que deseja cancelar? - Versão anterior - Ajuda de Instalação - /install | /repair | /uninstall | /layout [diretório] - instala, repara, desinstala ou - cria uma cópia local completa do pacote no diretório. Install é o padrão +/passive | /quiet - displays minimal UI with no prompts or displays no UI and no prompts. By default UI and all prompts are displayed. -/passive | /quiet - exibe a interface do usuário mínima sem nenhum prompt ou não exibe nenhuma interface do usuário e - nenhum prompt. Por padrão, a interface do usuário e todos os prompts são exibidos. +/norestart - suppress any attempts to restart. By default UI will prompt before restart. -/norestart - suprime qualquer tentativa de reiniciar. Por padrão, a interface do usuário perguntará antes de reiniciar. -/log log.txt - registra em um arquivo específico. Por padrão, um arquivo de log é criado em %TEMP%. - &Fechar - &Concordo com os termos e condições da licença - &Opções - &Instalar - &Fechar - Opções de Instalação - Local de instalação: - &Navegar - &OK - &Cancelar - Progresso da Instalação - Processando: - Inicializando... - &Cancelar - Modificar Instalação - &Reparar - &Desinstalar - &Fechar - Reparação Concluída com Êxito - Desinstalação Concluída com Êxito - A instalação foi bem-sucedida - Instalação com Êxito - &Iniciar - Você deve reiniciar seu computador antes de usar o software. - &Reiniciar - &Fechar - Falha na Instalação - Falha na Instalação - Falha na Desinstalação - Falha na Reparação - Um ou mais problemas causaram falha na instalação. Corrija-os e tente instalar novamente. Para obter mais informações, consulte o <a href="#">arquivo de log</a>. - Você deve reiniciar seu computador para concluir a reversão do software. - &Reiniciar - &Fechar - Não há suporte para o [PRODUCT_NAME] neste sistema operacional. Para obter mais informações, confira [LINK_PREREQ_PAGE]. - O [PRODUCT_NAME] não tem suporte em sistemas operacionais x86. Instale usando o instalador x86 correspondente. - Arquivos em Uso - Os aplicativos a seguir estão usando arquivos que precisam ser atualizados: - Feche os &aplicativos e tente reiniciá-los. - &Não feche os aplicativos. Será necessária uma reinicialização. - &OK - &Cancelar - Runtime do Windows Desktop - O Runtime do .NET Windows Desktop é usado para executar aplicativos do Windows Forms e do WPF no seu computador. O .NET é um software livre, com plataforma cruzada e possui o suporte da Microsoft. Esperamos que você goste! - Saiba mais sobre o .NET Core - O seguinte foi instalado em [DOTNETHOME] - - [BUNDLEMONIKER] - Recursos - <A HREF="https://aka.ms/dotnet-docs">Documentação</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Notas sobre a Versão</A> - <A HREF="https://aka.ms/dotnet-tutorials">Tutoriais</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Telemetria do .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Política de Privacidade</A> - < A HREF = "https://aka.ms/dotnet-License-Windows" > Informações de licenciamento para .NET</A> - Ao clicar em instalar, você concorda com os termos a seguir. +/log log.txt - logs to a specific file. By default a log file is created in %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1049/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1049/bundle.wxl index 1a2d513b6..eb7b9621d 100644 --- a/src/windowsdesktop/src/bundle/theme/1049/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1049/bundle.wxl @@ -1,75 +1,87 @@ - - - Установщик [WixBundleName] - [BUNDLEMONIKER] - Вам требуется только оболочка, текстовый редактор и 10 минут времени. + + + + + + + + Вы действительно хотите отменить? - Предыдущая версия - Справка по установке - /install | /repair | /uninstall | /layout [каталог] — установка, восстановление, удаление или - создание полной локальной копии пакета в каталоге. По умолчанию — установка. +/passive | /quiet — выводит минимальный пользовательский интерфейс без запросов или вообще не выводит пользовательский интерфейс и запросы. По умолчанию отображаются пользовательский интерфейс и все запросы. -/passive | /quiet — отображение минимального пользовательского интерфейса без запросов или работа без пользовательского интерфейса и - без запросов. По умолчанию отображаются пользовательский интерфейс и все запросы. +/norestart — подавляет все попытки перезапуска. По умолчанию пользовательский интерфейс запрашивает подтверждение перед перезапуском. -/norestart — отключение всех попыток перезагрузки. По умолчанию в пользовательском интерфейсе перед перезагрузкой отображается запрос. -/log log.txt — запись журнала в указанный файл. По умолчанию файл журнала создается в папке %TEMP%. - &Закрыть - Я &принимаю условия лицензии - &Параметры - &Установить - &Закрыть - Параметры установки - Расположение установки: - &Обзор - &ОК - Отм&ена - Ход установки - Обработка: - Идет инициализация... - Отм&ена - Изменение установки - &Исправить - &Удалить - &Закрыть - Восстановление успешно завершено - Удаление успешно завершено - Установка успешно завершена - Установка успешно завершена - &Запустить - Перед использованием программного обеспечения необходимо перезапустить компьютер. - &Перезапустить - &Закрыть - Настройка не завершена - Сбой установки - Сбой удаления - Сбой восстановления - Одна или несколько проблем вызывали сбой программы установки. Исправьте эти проблемы и попробуйте повторить установку. Дополнительные сведения см. в <a href="#">файле журнала</a>. - Необходимо перезагрузить компьютер, чтобы завершить откат программного обеспечения. - &Перезапустить - З&акрыть - Продукт [PRODUCT_NAME] не поддерживается в этой операционной системе. Дополнительные сведения: [LINK_PREREQ_PAGE]. - Продукт [PRODUCT_NAME] не поддерживается в операционных системах x86. Установите с помощью соответствующего установщика x86. - Используемые файлы - Следующие приложения используют файлы, которые следует обновить: - Закрыть &приложения и попытаться перезапустить их. - &Не закрывать приложения. Потребуется перезагрузка. - О&К - &Отмена - Среда выполнения Windows Desktop - Среда выполнения .NET Windows Desktop используется для запуска приложений Windows Forms и WPF на компьютерах. Среда .NET является открытой, кроссплатформенной и поддерживается Майкрософт. Надеемся, вам понравится! - Дополнительные сведения о .NET Core - Следующее было установлено в [DOTNETHOME] - - [BUNDLEMONIKER] - Ресурсы - <A HREF="https://aka.ms/dotnet-docs">Документация</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Заметки о выпуске</A> - <A HREF="https://aka.ms/dotnet-tutorials">Руководства</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Телеметрия .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Заявление о конфиденциальности</A> - <A HREF="https://aka.ms/dotnet-license-windows">Сведения о лицензировании .NET</A> - Нажимая кнопку "Установить", вы принимаете следующие условия. +/log log.txt — журналы в определенном файле. По умолчанию файл журнала создается в папке %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/1055/bundle.wxl b/src/windowsdesktop/src/bundle/theme/1055/bundle.wxl index 1b932682c..c8f3da9ad 100644 --- a/src/windowsdesktop/src/bundle/theme/1055/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/1055/bundle.wxl @@ -1,75 +1,87 @@ - - - [WixBundleName] Yükleyicisi - [BUNDLEMONIKER] - Yalnızca bir kabuğa, bir metin düzenleyicisine ve 10 dakikalık bir zamana ihtiyacınız var. + + + + + + + + İptal etmek istediğinizden emin misiniz? - Önceki sürüm - Kurulum Yardımı - /install | /repair | /uninstall | /layout [dizin] - yükler, onarır, kaldırır ya da - dizindeki paketin tam bir yerel kopyasını oluşturur. Varsayılan install değeridir. +/passive | /quiet - minimum kullanıcı arayüzü gösterir, hiçbir uyarı göstermez veya hiçbir kullanıcı arayüzü ve uyarı göstermez. Varsayılan olarak kullanıcı arabirimi ve tüm istemler görüntülenir. -/passive | /quiet - en az düzeyde istemsiz UI gösterir ya da hiç UI göstermez ve - istem yoktur. Varsayılan olarak UI ve tüm istemler görüntülenir. +/norestart - yeniden başlatma girişimlerini durdurur. Varsayılan olarak kullanıcı arabirimi yeniden başlatmadan önce soracaktır. -/norestart - yeniden başlama denemelerini engeller. Varsayılan olarak UI yeniden başlatılmadan önce sorar. -/log log.txt - belirli bir günlük dosyası tutar. Varsayılan olarak %TEMP% içinde bir günlük dosyası oluşturulur. - &Kapat - Lisans &hüküm ve koşullarını kabul ediyorum - &Seçenekler - &Yükle - &Kapat - Kurulum Seçenekleri - Yükleme konumu: - &Gözat - &Tamam - İ&ptal - Kurulum İlerleme Durumu - İşleniyor: - Başlatılıyor... - İ&ptal - Kurulumu Değiştir - &Onar - K&aldır - &Kapat - Onarım Başarıyla Tamamlandı - Kaldırma Başarıyla Tamamlandı - Yükleme başarılı oldu - Kurulum Başarılı - &Başlat - Yazılımı kullanabilmek için bilgisayarınızı yeniden başlatmanız gerekiyor. - Yeniden &Başlat - &Kapat - Kurulum Başarısız - Kurulum Başarısız - Yükleme Başarısız - Onarım Başarısız - En az bir sorun nedeniyle kurulum başarısız oldu. Lütfen bu sorunları düzeltin ve kurulumu yeniden deneyin. Daha fazla bilgi için <a href="#">günlük dosyasına</a> bakın. - Yazılımın geri alınmasını tamamlamak için bilgisayarınızı yeniden başlatmanız gerekiyor. - Yeniden &Başlat - &Kapat - [PRODUCT_NAME] bu işletim sisteminde desteklenmiyor. Daha fazla bilgi için bkz. [LINK_PREREQ_PAGE]. - [PRODUCT_NAME], x86 işletim sistemlerinde desteklenmiyor. Lütfen karşılık gelen x86 yükleyicisini kullanarak yükleyin. - Kullanımda Olan Dosyalar - Şu uygulamalar güncelleştirilmesi gereken dosyaları kullanıyor: - &Uygulamaları kapatın ve yeniden başlatmayı deneyin. - &Uygulamaları kapatmayın. Sistemi yeniden başlatmanız gerekir. - &Tamam - &İptal - Windows Masaüstü Çalışma Zamanı - .NET Windows Masaüstü Çalışma Zamanı, Windows bilgisayarınızda Windows Forms ve WPF uygulamalarını çalıştırmak için kullanılır. .NET açık kaynaktır, platformlar arasında kullanılabilir ve Microsoft tarafından desteklenmektedir. Beğeneceğinizi umuyoruz! - .NET Core hakkında daha fazla bilgi edinin - Aşağıdakiler [DOTNETHOME] konumunda yüklendi - - [BUNDLEMONIKER] - Kaynaklar - <A HREF="https://aka.ms/dotnet-docs">Belgeler</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Sürüm Notları</A> - <A HREF="https://aka.ms/dotnet-tutorials">Öğreticiler</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core Telemetrisi</A> - <A HREF="https://aka.ms/dev-privacy">Gizlilik Bildirimi</A> - <A HREF="https://aka.ms/dotnet-license-windows">.NET için Lisans Bilgileri</A> - Yükle'ye tıklayarak aşağıdaki koşulları kabul etmiş olursunuz. +/log log.txt - belirli bir dosyaya kaydeder. Varsayılan olarak %TEMP% içinde bir günlük dosyası oluşturulur."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/2052/bundle.wxl b/src/windowsdesktop/src/bundle/theme/2052/bundle.wxl index b24c59614..84a494cb9 100644 --- a/src/windowsdesktop/src/bundle/theme/2052/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/2052/bundle.wxl @@ -1,75 +1,87 @@ - - - [WixBundleName] 安装程序 - [BUNDLEMONIKER] - 你只需要一个 shell、一个文本编辑器,还需花 10 分钟即可。 + + + + + + + + 是否确实要取消? - 上一版本 - 安装程序帮助 - /install | /repair | /uninstall | /layout [目录] - 安装、修复、卸载 - 目录中的安装包或创建其完整本地副本。Install 为默认选择。 +/passive | /quiet - 在无提示的情况下显示最小 UI 或不显示 UI 和提示。默认情况下,将显示 UI 和所有提示。 -/passive | /quiet - 显示最少的 UI 且无提示,或不显示 UI 且 - 无提示。默认显示 UI 及全部提示。 +/norestart - 抑制任何重启尝试。默认情况下,UI 将在重启前提示。 -/norestart - 禁止任何重新启动。默认在重新启动前显示提示 UI。 -/log log.txt - 向特定文件写入日志。默认在 %TEMP% 中创建日志文件。 - 关闭(&C) - 我同意许可条款和条件(&A) - 选项(&O) - 安装(&I) - 关闭(&C) - 安装选项 - 安装位置: - 浏览(&B) - 确定(&O) - 取消(&C) - 安装进度 - 正在处理: - 正在初始化… - 取消(&C) - 修改安装程序 - 修复(&R) - 卸载(&U) - 关闭(&C) - 成功完成了修复 - 成功完成了卸载 - 安装成功 - 设置成功 - 启动(&L) - 在使用此软件之前,您必须重新启动计算机。 - 重新启动(&R) - 关闭(&C) - 设置失败 - 安装失败 - 卸载失败 - 修复失败 - 一个或多个问题导致了安装失败。请修复这些问题,然后重试安装。有关详细信息,请参阅<a href="#">日志文件</a>。 - 必须重新启动计算机才能完成软件回退。 - 重新启动(&R) - 关闭(&C) - 此操作系统不支持 [PRODUCT_NAME]。有关详细信息,请参阅[LINK_PREREQ_PAGE]。 - x86 操作系统不支持该 [PRODUCT_NAME]。请使用相应的 x86 安装程序进行安装。 - 文件正在使用 - 以下应用程序正在使用的文件需要更新: - 关闭应用程序并尝试重启(&A)。 - 不关闭应用程序(&D)。需要重启。 - 确定(&O) - 取消(&C) - Windows Desktop 运行时 - .NET Windows Desktop 运行时用于在你的计算机上运行 Windows 窗体和 WPF 应用程序。.NET 是开源、跨平台的,且由 Microsoft 提供支持。希望你喜欢它! - 了解有关 .NET Core 的详细信息 - 以下项已安装到 [DOTNETHOME] - - [BUNDLEMONIKER] - 资源 - <A HREF="https://aka.ms/dotnet-docs">文档</A> - <A HREF="https://aka.ms/20-p2-rel-notes">发行说明</A> - <A HREF="https://aka.ms/dotnet-tutorials">教程</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">.NET Core 遥测</A> - <A HREF="https://aka.ms/dev-privacy">隐私声明</A> - <A HREF="https://aka.ms/dotnet-license-windows">.NET 的许可信息</A> - 单击“安装”即表示你同意以下条款。 +/log log.txt - 记录到特定文件。默认在 %TEMP% 中创建日志文件。"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/bundle/theme/3082/bundle.wxl b/src/windowsdesktop/src/bundle/theme/3082/bundle.wxl index 5dfe23a1d..3a51abff4 100644 --- a/src/windowsdesktop/src/bundle/theme/3082/bundle.wxl +++ b/src/windowsdesktop/src/bundle/theme/3082/bundle.wxl @@ -1,75 +1,87 @@ - - - Instalador de [WixBundleName] - [BUNDLEMONIKER] - Solo necesita un shell, un editor de texto y 10 minutos. + + + + + + + + ¿Está seguro de que desea cancelar? - Versión anterior - Ayuda de configuración - /install | /repair | /uninstall | /layout [directory] - instala, repara, desinstala o - crea una copia local completa del paquete en el directorio. Install es la opción predeterminada. +/passive | /quiet: muestra una interfaz de usuario mínima sin indicaciones o no muestra ninguna interfaz de usuario ni ninguna indicación. De manera predeterminada, se muestran la interfaz de usuario y todas las indicaciones. -/passive | /quiet - muestra una IU mínima sin peticiones, o bien no muestra la IU - ni las peticiones. De forma predeterminada, se muestran la IU y todas las peticiones. +/norestart: suprime los intentos de reinicio. De manera predeterminada, la interfaz de usuario le avisará antes del reinicio. -/norestart - suprime los intentos de reiniciar. De forma predeterminada, la IU preguntará antes de reiniciar. -/log log.txt - se registra en un archivo específico. De forma predeterminada, se crea un archivo de registro en %TEMP%. - &Cerrar - &Acepto los términos y condiciones de licencia - &Opciones - &Instalar - &Cerrar - Opciones de instalación - Ubicación de instalación: - E&xaminar - &Aceptar - &Cancelar - Progreso de la instalación - Procesando: - Inicializando... - &Cancelar - Modificar instalación - &Reparar - &Desinstalar - &Cerrar - La reparación se completó correctamente - La desinstalación se completó correctamente - La instalación se realizó correctamente - La instalación o desinstalación se realizó correctamente - &Iniciar - Debe reiniciar el equipo para poder usar el software. - &Reiniciar - &Cerrar - Error de instalación - No se pudo instalar - No se pudo desinstalar - No se pudo reparar - Error de instalación debido a uno o varios problemas. Corrija los problemas e intente de nuevo la instalación. Para obtener más información, consulte el <a href="#">archivo de registro</a>. - Debe reiniciar el equipo para completar la reversión del software. - &Reiniciar - &Cerrar - [PRODUCT_NAME] no se admite en este sistema operativo. Para obtener más información, consulte [LINK_PREREQ_PAGE]. - [PRODUCT_NAME] no es compatible con los sistemas operativos x86. Instálelo con el instalador x86 correspondiente. - Archivos en uso - Las siguientes aplicaciones usan archivos que se deben actualizar: - Cerrar las &aplicaciones e intentar reiniciarlas. - &No cerrar las aplicaciones. Será necesario un reinicio. - &Aceptar - &Cancelar - Windows Desktop Runtime - .NET Windows Desktop Runtime se usa para ejecutar aplicaciones de Windows Forms y WPF en el equipo. Microsoft admite .NET, un código abierto multiplataforma. Esperamos que lo disfrute. - Más información sobre .NET Core - Lo siguiente se instaló en [DOTNETHOME] - - [BUNDLEMONIKER] - Recursos - <A HREF="https://aka.ms/dotnet-docs">Documentación</A> - <A HREF="https://aka.ms/20-p2-rel-notes">Notas de la versión</A> - <A HREF="https://aka.ms/dotnet-tutorials">Tutoriales</A> - <A HREF="https://aka.ms/dotnet-cli-telemetry">Telemetría de .NET Core</A> - <A HREF="https://aka.ms/dev-privacy">Declaración de privacidad</A> - <A HREF="https://aka.ms/dotnet-license-windows">Información de licencias de .NET</A> - Al hacer clic en Instalar, acepta los términos siguientes. +/log log.txt: registra en un archivo específico. De manera predeterminada, se crea un archivo de registro en %TEMP%."/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/windowsdesktop/src/sfx/Microsoft.WindowsDesktop.App.Runtime.sfxproj b/src/windowsdesktop/src/sfx/Microsoft.WindowsDesktop.App.Runtime.sfxproj index d60c55ebe..924c3b362 100644 --- a/src/windowsdesktop/src/sfx/Microsoft.WindowsDesktop.App.Runtime.sfxproj +++ b/src/windowsdesktop/src/sfx/Microsoft.WindowsDesktop.App.Runtime.sfxproj @@ -5,8 +5,22 @@ RuntimePack windowsdesktop-runtime windowsdesktop-runtime + win-x64;win-x86;win-arm64 + win-x64;win-x86;win-arm64 WindowsDesktop.SharedFramework LatestPatch + + + + false + false + + + 1 + true + + + @@ -41,6 +55,10 @@ + + + + diff --git a/src/windowsdesktop/tests/scripts/README.md b/src/windowsdesktop/tests/scripts/README.md new file mode 100644 index 000000000..3150feb38 --- /dev/null +++ b/src/windowsdesktop/tests/scripts/README.md @@ -0,0 +1,124 @@ +# Runtime Prerequisite Helper Scripts + +This directory contains helper scripts used to stage (or simulate) the .NET runtime MSIs that may be bundled into the WindowsDesktop WiX v5 installer. + +## Scripts + +### eng/scripts/runtime-prereqs/restore-runtime-prereqs.ps1 + +Stages the runtime MSI triad directly from the `Microsoft.Internal.Runtime.WindowsDesktop.Transport` package by invoking the WiX bundle project’s new `RestoreRuntimePrereqs` target. The script is used by CI and can be invoked locally to mirror the automated behavior. + +Parameters: + +- `-Architectures ` optional; defaults to `x64,x86,arm64` +- `-Configuration ` optional MSBuild configuration override +- `-MsbuildArgs ` optional passthrough arguments to `msbuild` +- `-CI` switch to mirror pipeline defaults (disables node reuse, etc.) +- `-VerboseLogging` switch for normal MSBuild verbosity + +Example (single architecture): + +```powershell +pwsh eng/scripts/runtime-prereqs/restore-runtime-prereqs.ps1 -Architectures x64 -VerboseLogging +``` + +The script writes staged MSIs into `artifacts/prereqs/` and echoes the detected runtime version. + +### acquire-runtime-msis.ps1 + +Acquires real runtime MSIs (host, hostfxr, runtime) from either a build artifact drop folder or an expanded runtime build ZIP, then normalizes them into the deterministic staging contract: + +```text +artifacts/prereqs// + dotnet-host-win-.msi + dotnet-hostfxr-win-.msi + dotnet-runtime-win-.msi + resolved-runtime-version.txt +``` + +Parameters: + +- `-Architecture ` (required) +- `-Destination ` optional (defaults to `artifacts/prereqs/`) +- `-SourceDrop ` path containing *un-renamed* runtime MSIs (copies the latest version of each) +- `-RuntimeBuildZip ` zip produced by a runtime build that contains the MSIs; expanded and processed + +Exactly one of `-SourceDrop` or `-RuntimeBuildZip` must be provided. + +Outputs: + +- Normalized MSI triad copied/renamed as above +- `resolved-runtime-version.txt` containing a single line `RuntimePrereqVersion=` (informational) + +Failure conditions: + +- Missing or unreadable input (exit 1/2/3) +- Fewer than all three MSIs discoverable (exit 4) + +### make-dummy-runtime-msis.ps1 + +Creates placeholder files (NOT valid MSIs) for local structural testing of the bundle build logic (e.g., verifying `IncludeRuntimeMSIs` gating). These placeholders allow the build to proceed through most WiX phases, but any step that requires actual MSI metadata will fail. + +Parameters: + +- `-Architecture ` (required) +- `-Destination ` optional (defaults to `artifacts/prereqs/`) +- `-Version ` optional, default `0.0.0-dummy` (recorded in `resolved-runtime-version.txt`) + +Outputs: + +- Three small text files named like real MSIs +- `resolved-runtime-version.txt` capturing the dummy version + +Caveats: + +- Do NOT publish or distribute bundles built with dummy files. +- Use only to verify conditional logic / build orchestration. + +## Build Integration + +The WiX project (`bundle.wixproj`) now exposes a `RestoreRuntimePrereqs` target that unpacks the transport package into `artifacts/prereqs/` and runs automatically before `StagePrereqRuntimeMsis`. If (and only if) the three normalized MSI files are present when `StagePrereqRuntimeMsis` runs, the bundle defines `IncludeRuntimeMSIs=true` and embeds them; otherwise it proceeds without them. + +Internal CI: the Windows build pipeline calls `eng/scripts/runtime-prereqs/restore-runtime-prereqs.ps1` before `cibuild`, ensuring the normalized triad is available. Missing or partial triad triggers a build warning or error per policy. +Public PR builds: typically do not supply real MSIs; the bundle is produced without runtime prereqs unless explicitly staged (either via the script above or manual copying). + +## Typical Workflows + +1. Acquire real runtime MSIs from an extracted runtime build: + +```powershell +pwsh src/windowsdesktop/tests/scripts/acquire-runtime-msis.ps1 -Architecture x64 -SourceDrop C:/path/to/runtime/msis +``` + +1. Acquire from a runtime build zip: + +```powershell +pwsh src/windowsdesktop/tests/scripts/acquire-runtime-msis.ps1 -Architecture arm64 -RuntimeBuildZip C:/drops/runtime-msis.zip +``` + +1. Generate dummy placeholders (structural test only): + +```powershell +pwsh src/windowsdesktop/tests/scripts/make-dummy-runtime-msis.ps1 -Architecture x86 -Version 9.0.0-dummy +``` + +1. Build the bundle after staging: + +```powershell +./build.cmd -configuration Release -architecture x64 +``` + +## Troubleshooting + +- If the bundle still excludes runtime MSIs, ensure all three normalized file names match exactly and are in the architecture-specific directory. +- Delete stale prereqs: `Remove-Item -Recurse -Force artifacts/prereqs` then re-run acquisition. +- Verify runtime version captured: `Get-Content artifacts/prereqs/x64/resolved-runtime-version.txt`. + +## Future Enhancements (Ideas) + +- Optional hash verification to ensure MSIs are authentic. +- Multi-architecture acquisition loop. +- Integration test that asserts gating behavior with/without the triad. + +--- +Maintainers: adjust this doc if the staging contract or target names change. diff --git a/src/windowsdesktop/tests/scripts/acquire-runtime-msis.ps1 b/src/windowsdesktop/tests/scripts/acquire-runtime-msis.ps1 new file mode 100644 index 000000000..480ba373c --- /dev/null +++ b/src/windowsdesktop/tests/scripts/acquire-runtime-msis.ps1 @@ -0,0 +1,48 @@ +# Purpose: Acquire real runtime MSIs (host, hostfxr, runtime) and normalize names for bundle build. +param( + [Parameter(Mandatory=$true)][string]$Architecture, + [string]$Destination = (Join-Path (Get-Location) "artifacts/prereqs/$Architecture"), + [string]$SourceDrop, + [string]$RuntimeBuildZip +) + +Write-Host "[acquire-runtime-msis] Architecture=$Architecture" +New-Item -Force -ItemType Directory -Path $Destination | Out-Null + +if (-not $SourceDrop -and -not $RuntimeBuildZip) { + Write-Host "Provide -SourceDrop or -RuntimeBuildZip"; exit 1 +} + +if ($SourceDrop) { + if (-not (Test-Path $SourceDrop)) { Write-Host "SourceDrop not found: $SourceDrop"; exit 2 } + Write-Host "Copying MSIs from $SourceDrop -> $Destination" + Get-ChildItem -Path $SourceDrop -Filter "dotnet-*-win-$Architecture*.msi" | Copy-Item -Destination $Destination -Force +} +elseif ($RuntimeBuildZip) { + if (-not (Test-Path $RuntimeBuildZip)) { Write-Host "RuntimeBuildZip not found: $RuntimeBuildZip"; exit 3 } + Write-Host "Expanding $RuntimeBuildZip -> $Destination" + Expand-Archive -Path $RuntimeBuildZip -DestinationPath $Destination -Force +} + +function PickLatest([string]$pattern) { + $candidates = Get-ChildItem -Path $Destination -Filter $pattern | Sort-Object Name -Descending + if ($candidates.Count -gt 0) { return $candidates[0].FullName } + return $null +} + +$_host = PickLatest "dotnet-host-*-win-$Architecture.msi" +$_hostfxr = PickLatest "dotnet-hostfxr-*-win-$Architecture.msi" +$_runtime = PickLatest "dotnet-runtime-*-win-$Architecture.msi" + +if (-not ($_host -and $_hostfxr -and $_runtime)) { + Write-Host "Missing required MSIs after acquisition. Present:"; Get-ChildItem $Destination -Filter "dotnet-*-win-$Architecture*.msi" | Select-Object Name + exit 4 +} + +Copy-Item $_host (Join-Path $Destination "dotnet-host-win-$Architecture.msi") -Force +Copy-Item $_hostfxr (Join-Path $Destination "dotnet-hostfxr-win-$Architecture.msi") -Force +Copy-Item $_runtime (Join-Path $Destination "dotnet-runtime-win-$Architecture.msi") -Force + +"RuntimePrereqVersion=" + ([IO.Path]::GetFileNameWithoutExtension($_runtime)) | Out-File (Join-Path $Destination "resolved-runtime-version.txt") -Encoding UTF8 + +Write-Host "[acquire-runtime-msis] Final staged files:"; Get-ChildItem $Destination -Filter "dotnet-*-win-$Architecture.msi" | Select-Object Name diff --git a/src/windowsdesktop/tests/scripts/make-dummy-runtime-msis.ps1 b/src/windowsdesktop/tests/scripts/make-dummy-runtime-msis.ps1 new file mode 100644 index 000000000..9372fe5e4 --- /dev/null +++ b/src/windowsdesktop/tests/scripts/make-dummy-runtime-msis.ps1 @@ -0,0 +1,24 @@ +# Purpose: Create placeholder (non-valid) MSI files so the bundle build exercises gating logic. +param( + [Parameter(Mandatory=$true)][string]$Architecture, + [string]$Destination = (Join-Path (Get-Location) "artifacts/prereqs/$Architecture"), + [string]$Version = "0.0.0-dummy" +) + +Write-Host "[make-dummy-runtime-msis] Architecture=$Architecture Version=$Version" +New-Item -Force -ItemType Directory -Path $Destination | Out-Null + +$files = @( + "dotnet-host-win-$Architecture.msi", + "dotnet-hostfxr-win-$Architecture.msi", + "dotnet-runtime-win-$Architecture.msi" +) + +foreach ($f in $files) { + $path = Join-Path $Destination $f + "Dummy MSI placeholder for $f version $Version" | Out-File $path -Encoding ASCII +} + +"RuntimePrereqVersion=$Version" | Out-File (Join-Path $Destination "resolved-runtime-version.txt") -Encoding UTF8 + +Write-Host "[make-dummy-runtime-msis] Created placeholder files:"; Get-ChildItem $Destination | Select-Object Name, Length