[automated] Merge branch 'release/8.0.3xx' => 'main' (#18709)

This commit is contained in:
Noah Gilson 2024-02-20 14:09:49 -08:00 committed by GitHub
commit 8f62fd0b22
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 74 additions and 7 deletions

View file

@ -189,7 +189,8 @@
<SharedHostVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</SharedHostVersion>
</PropertyGroup>
<PropertyGroup>
<WixPackageVersion>1.0.0-v3.14.0.5722</WixPackageVersion>
<!-- This is the version of the zip archive for the WiX toolset and is different from the NuGet package version format. -->
<WixVersion>3.14.0.8606</WixVersion>
</PropertyGroup>
<PropertyGroup>
<!-- 9.0 Template versions -->

View file

@ -64,7 +64,8 @@
"name": "aspire",
"defaultRemote": "https://github.com/dotnet/aspire",
"exclude": [
"src/Aspire.Dashboard/**/*"
"src/Aspire.Dashboard/**/*",
"samples/**/*"
]
},
{

View file

@ -55,6 +55,7 @@ target_link_libraries(Finalizer shell32.lib)
target_link_libraries(Finalizer advapi32.lib)
target_link_libraries(Finalizer version.lib)
target_link_libraries(Finalizer msi.lib)
target_link_libraries(Finalizer shlwapi.lib)
# Add WiX libraries
target_link_libraries(Finalizer wcautil.lib)

View file

@ -492,12 +492,64 @@ LExit:
return hr;
}
void RemoveInstallStateFile(LPWSTR sczSdkFeatureBandVersion, LPWSTR sczPlatform)
{
HRESULT hr = S_OK;
LPWSTR sczProgramData = NULL;
LPWSTR sczInstallStatePath = NULL;
LPWSTR sczPath = NULL;
hr = ShelGetFolder(&sczProgramData, CSIDL_COMMON_APPDATA);
ExitOnFailure(hr, "Failed to get shell folder.");
hr = PathConcat(sczProgramData, L"dotnet", &sczInstallStatePath);
ExitOnFailure(hr, "Failed to concat dotnet to install state path.");
hr = PathConcat(sczInstallStatePath, L"workloads", &sczInstallStatePath);
ExitOnFailure(hr, "Failed to concat workloads to install state path.");
hr = PathConcat(sczInstallStatePath, sczPlatform, &sczInstallStatePath);
ExitOnFailure(hr, "Failed to concat platform (%ls) to install state path.", sczPlatform);
hr = PathConcat(sczInstallStatePath, sczSdkFeatureBandVersion, &sczInstallStatePath);
ExitOnFailure(hr, "Failed to concat feature band (%ls) to install state path.", sczSdkFeatureBandVersion);
hr = PathConcat(sczInstallStatePath, L"installstate", &sczInstallStatePath);
ExitOnFailure(hr, "Failed to concat installstate to install state path.");
hr = PathConcat(sczInstallStatePath, L"default.json", &sczInstallStatePath);
ExitOnFailure(hr, "Failed to concat default.json to install state path.");
if (FileExistsEx(sczInstallStatePath, NULL))
{
LogStringLine(REPORT_STANDARD, "Deleting install state file: %ls", sczInstallStatePath);
hr = FileEnsureDelete(sczInstallStatePath);
ExitOnFailure(hr, "Failed to delete install state file: %ls", sczInstallStatePath);
hr = PathGetParentPath(sczInstallStatePath, &sczPath);
ExitOnFailure(hr, "Failed to get parent path of install state file.");
LogStringLine(REPORT_STANDARD, "Cleaning up empty workload folders.");
DirDeleteEmptyDirectoriesToRoot(sczPath, 0);
}
else
{
LogStringLine(REPORT_STANDARD, "Install state file does not exist: %ls", sczInstallStatePath);
}
LExit:
ReleaseStr(sczPath);
ReleaseStr(sczInstallStatePath)
ReleaseStr(sczProgramData);
}
int wmain(int argc, wchar_t* argv[])
{
HRESULT hr = S_OK;
DWORD dwExitCode = 0;
LPWSTR sczDependent = NULL;
LPWSTR sczFeatureBandVersion = NULL;
LPWSTR sczPlatform = NULL;
BOOL bRestartRequired = FALSE;
BOOL bSdkFeatureBandInstalled = FALSE;
int iMajor = 0;
@ -507,16 +559,19 @@ int wmain(int argc, wchar_t* argv[])
hr = ::Initialize(argc, argv);
ExitOnFailure(hr, "Failed to initialize.");
hr = StrAllocString(&sczPlatform, argv[3], 0);
ExitOnFailure(hr, "Failed to copy platform argument.");
// Convert the full SDK version to a feature band version
hr = ParseSdkVersion(argv[2], &sczFeatureBandVersion);
ExitOnFailure(hr, "Failed to parse version, %ls.", argv[2]);
// Create the dependent value, e.g., Microsoft.NET.Sdk,6.0.300,arm64
hr = StrAllocFormatted(&sczDependent, L"Microsoft.NET.Sdk,%ls,%ls", sczFeatureBandVersion, argv[3]);
hr = StrAllocFormatted(&sczDependent, L"Microsoft.NET.Sdk,%ls,%ls", sczFeatureBandVersion, sczPlatform);
ExitOnFailure(hr, "Failed to create dependent.");
LogStringLine(REPORT_STANDARD, "Setting target dependent to %ls.", sczDependent);
hr = ::DetectSdk(sczFeatureBandVersion, argv[3], &bSdkFeatureBandInstalled);
hr = ::DetectSdk(sczFeatureBandVersion, sczPlatform, &bSdkFeatureBandInstalled);
ExitOnFailure(hr, "Failed to detect installed SDKs.");
// If the feature band is still present, do not remove workloads.
@ -529,7 +584,7 @@ int wmain(int argc, wchar_t* argv[])
hr = ::RemoveDependent(sczDependent, &bRestartRequired);
ExitOnFailure(hr, "Failed to remove dependent \"%ls\".", sczDependent);
hr = ::DeleteWorkloadRecords(sczFeatureBandVersion, argv[3]);
hr = ::DeleteWorkloadRecords(sczFeatureBandVersion, sczPlatform);
ExitOnFailure(hr, "Failed to remove workload records.");
if (bRestartRequired)
@ -537,9 +592,12 @@ int wmain(int argc, wchar_t* argv[])
dwExitCode = ERROR_SUCCESS_REBOOT_REQUIRED;
}
RemoveInstallStateFile(sczFeatureBandVersion, sczPlatform);
LExit:
ReleaseStr(sczDependent);
ReleaseStr(sczFeatureBandVersion);
ReleaseStr(sczPlatform);
LogUninitialize(TRUE);
RegUninitialize();
WiuUninitialize();

View file

@ -12,6 +12,8 @@
#include <winreg.h>
#include <msi.h>
#include <pathcch.h>
#include <shlobj.h>
#include <shlwapi.h>
// Configure some logging parameters for WiX
#define ExitTrace LogErrorString
@ -26,3 +28,7 @@
#include "pathutil.h"
#include "strutil.h"
#include "wiutil.h"
#include "dirutil.h"
#include "fileutil.h"
#include "shelutil.h"

View file

@ -12,7 +12,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Signed.Wix" Version="$(WixPackageVersion)" GeneratePathProperty="true" />
<!-- The MicrosoftSignedWixVersion property comes from the Arcade SDK DefaultVersions.props -->
<PackageReference Include="Microsoft.Signed.Wix" Version="$(MicrosoftSignedWixVersion)" GeneratePathProperty="true" />
</ItemGroup>
<ItemGroup>

View file

@ -3,7 +3,6 @@
<Target Name="SetupWixProperties" DependsOnTargets="GetCurrentRuntimeInformation">
<!-- AcquireWix Properties -->
<PropertyGroup>
<WixVersion>$(WixPackageVersion)</WixVersion>
<WixDownloadUrl>https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/wix/Microsoft.Signed.Wix-$(WixVersion).zip</WixDownloadUrl>
<WixRoot>$(ArtifactsDir)Tools/WixTools/$(WixVersion)</WixRoot>
<WixDestinationPath>$(WixRoot)/WixTools.$(WixVersion).zip</WixDestinationPath>