diff --git a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs
index eb412653e..7318badbe 100644
--- a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs
+++ b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs
@@ -1361,7 +1361,7 @@ namespace Dalamud.Interface.Internal.Windows
{
this.installStatus = OperationStatus.InProgress;
- Task.Run(() => pluginManager.UpdateSinglePluginAsync(update, true, false))
+ Task.Run(async () => await pluginManager.UpdateSinglePluginAsync(update, true, false))
.ContinueWith(task =>
{
// There is no need to set as Complete for an individual plugin installation
diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs
index ad3014b2f..952cf605d 100644
--- a/Dalamud/Plugin/Internal/PluginManager.cs
+++ b/Dalamud/Plugin/Internal/PluginManager.cs
@@ -685,7 +685,7 @@ namespace Dalamud.Plugin.Internal
}
///
- /// Update all plugins.
+ /// Update all non-dev plugins.
///
/// Perform a dry run, don't install anything.
/// Success or failure and a list of updated plugin metadata.
@@ -698,6 +698,10 @@ namespace Dalamud.Plugin.Internal
// Prevent collection was modified errors
foreach (var plugin in this.UpdatablePlugins)
{
+ // Can't update that!
+ if (plugin.InstalledPlugin.IsDev)
+ return null;
+
var result = await this.UpdateSinglePluginAsync(plugin, false, dryRun);
if (result != null)
updatedList.Add(result);
@@ -721,10 +725,6 @@ namespace Dalamud.Plugin.Internal
{
var plugin = metadata.InstalledPlugin;
- // Can't update that!
- if (plugin.IsDev)
- return null;
-
var updateStatus = new PluginUpdateStatus
{
InternalName = plugin.Manifest.InternalName,
@@ -753,16 +753,33 @@ namespace Dalamud.Plugin.Internal
}
}
- try
+ if (plugin.IsDev)
{
- plugin.Disable();
- this.InstalledPlugins = this.InstalledPlugins.Remove(plugin);
+ try
+ {
+ plugin.DllFile.Delete();
+ this.InstalledPlugins = this.InstalledPlugins.Remove(plugin);
+ }
+ catch (Exception ex)
+ {
+ Log.Error(ex, "Error during delete (update)");
+ updateStatus.WasUpdated = false;
+ return updateStatus;
+ }
}
- catch (Exception ex)
+ else
{
- Log.Error(ex, "Error during disable (update)");
- updateStatus.WasUpdated = false;
- return updateStatus;
+ try
+ {
+ plugin.Disable();
+ this.InstalledPlugins = this.InstalledPlugins.Remove(plugin);
+ }
+ catch (Exception ex)
+ {
+ Log.Error(ex, "Error during disable (update)");
+ updateStatus.WasUpdated = false;
+ return updateStatus;
+ }
}
try