Skip to content

Commit e39f87e

Browse files
committed
Add a toggle for the --location argument when updating WinGet packages (fix #4210)
1 parent 1651454 commit e39f87e

3 files changed

Lines changed: 19 additions & 3 deletions

File tree

src/UniGetUI.Core.Settings/SettingsEngine_Names.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ public enum K
8484
ProhibitElevation,
8585
DisableIntegrityChecks,
8686
UseLegacyElevator,
87+
WinGetForceLocationOnUpdate,
8788

8889
Test1,
8990
Test2,
@@ -179,6 +180,7 @@ public static string ResolveKey(K key)
179180
K.ProhibitElevation => "ProhibitElevation",
180181
K.DisableIntegrityChecks => "DisableIntegrityChecks",
181182
K.UseLegacyElevator => "UseLegacyElevator",
183+
K.WinGetForceLocationOnUpdate => "WinGetForceLocationOnUpdate",
182184

183185
K.Test1 => "TestSetting1",
184186
K.Test2 => "TestSetting2",

src/UniGetUI.PackageEngine.Managers.WinGet/Helpers/WinGetPkgOperationHelper.cs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ protected override IReadOnlyList<string> _getOperationParameters(IPackage packag
6969
options.Architecture = Architecture.x86;
7070
}
7171
parameters.Add("--include-unknown");
72+
73+
if(Settings.Get(Settings.K.WinGetForceLocationOnUpdate) && options.CustomInstallLocation != "")
74+
parameters.AddRange(["--location", $"\"{options.CustomInstallLocation}\""]);
75+
}
76+
else if (operation is OperationType.Install)
77+
{
78+
if (options.CustomInstallLocation != "")
79+
parameters.AddRange(["--location", $"\"{options.CustomInstallLocation}\""]);
7280
}
7381

7482
if (operation is not OperationType.Uninstall)
@@ -78,9 +86,6 @@ protected override IReadOnlyList<string> _getOperationParameters(IPackage packag
7886
if (options.SkipHashCheck)
7987
parameters.Add("--ignore-security-hash");
8088

81-
if (options.CustomInstallLocation != "")
82-
parameters.AddRange(["--location", $"\"{options.CustomInstallLocation}\""]);
83-
8489
parameters.AddRange(options.Architecture switch
8590
{
8691
Architecture.x86 => ["--architecture", "x86"],

src/UniGetUI/Pages/SettingsPages/ManagersPages/PackageManager.xaml.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,15 @@ protected override void OnNavigatedTo(NavigationEventArgs e)
134134
WinGet_ResetWindowsIPackageManager.Click += (_, _) => _ = DialogHelper.HandleBrokenWinGet();
135135
ExtraControls.Children.Add(WinGet_ResetWindowsIPackageManager);
136136

137+
CheckboxCard WinGet_ForceLocationWhenUpdating = new()
138+
{
139+
Text = CoreTools.Translate("Force install location parameter when updating packages with custom locations"),
140+
SettingName = Settings.K.WinGetForceLocationOnUpdate,
141+
CornerRadius = new CornerRadius(0),
142+
BorderThickness = new Thickness(1, 0, 1, 1),
143+
};
144+
ExtraControls.Children.Add(WinGet_ForceLocationWhenUpdating);
145+
137146
CheckboxCard WinGet_UseBundled = new()
138147
{
139148
Text =

0 commit comments

Comments
 (0)