oqtane / oqtane.framework

CMS & Application Framework for Blazor & .NET MAUI
http://www.oqtane.org
MIT License
1.89k stars 546 forks source link

Bug: Uninstalling A Module While Used On A Page Causes Errors in Visual Studio 2022 - 5.1.0 #3945

Closed thabaum closed 8 months ago

thabaum commented 8 months ago

Description

Not sure if uninstalling modules was supported before but after trying to uninstall a couple vendor modules from the marketplace Oqtane.Server Visual Studio project ends on errors and wont startup again with errors.

Steps to reproduce

  1. Install a module from the marketplace or...
  2. Place the module on a page.
  3. Navigate to the Administration Dashboard.
  4. Select Module Management.
  5. Uninstall the module that is still being used on a page.
  6. Notice the step through errors in Visual Studio.

Additional Context

So far we have added to this discussion some logs and test results from both the Oqtane.Blog and 2sic modules with I believe similar results. If not on a page , installed then uninstalled, all works as expected. I have not tested deleting a module after deleting all module instances manually. I will update this if I do.

Screenshots

After installing then uninstalling 2sic module for one of the error examples and then trying to start the Oqtane.Server project: image

sbwalker commented 8 months ago

@thabaum it appears that the 2SXC module is not cleaning up all of its references. Please find the 2SXC log file in the Oqtane.Server\Packages folder and post its contents in this thread. It will include the manifest of files which were installed as part of the nuget package. This is how Oqtane determines which files need to be removed.

thabaum commented 8 months ago

@sbwalker below is the contents of the two files currently located in this location. To note there are still ToSic dll files lcoated in the Oqtane.Server\bin\Debug\net8.0 folder.

assemblies

{
  "ToSic.Eav.Apps.dll": 1,
  "ToSic.Eav.Core.dll": 1,
  "ToSic.Eav.DataSources.dll": 1,
  "ToSic.Eav.dll": 1,
  "ToSic.Eav.ImportExport.dll": 1,
  "ToSic.Eav.Persistence.Efc.dll": 1,
  "ToSic.Eav.Repository.Efc.dll": 1,
  "ToSic.Eav.WebApi.dll": 1,
  "ToSic.Lib.Core.dll": 1,
  "ToSic.Razor.dll": 1,
  "ToSic.Sxc.dll": 1,
  "ToSic.Sxc.Oqtane.Server.dll": 1,
  "ToSic.Sxc.Oqtane.Shared.dll": 1,
  "ToSic.Sxc.Razor.dll": 1,
  "ToSic.Sxc.WebApi.dll": 1,
  "ToSic.Sxc.Oqtane.Client.dll": 1,
  "Connect.Koi.dll": 1,
  "CsvHelper.dll": 1,
  "Microsoft.AspNetCore.Mvc.Razor.Extensions.dll": 1,
  "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.dll": 1,
  "Microsoft.AspNetCore.Razor.Language.dll": 1,
  "Microsoft.CodeAnalysis.CSharp.dll": 1,
  "Microsoft.CodeAnalysis.dll": 1,
  "Microsoft.CodeAnalysis.Razor.dll": 1,
  "Microsoft.Extensions.DependencyModel.dll": 1,
  "ToSic.Imageflow.Oqt.Server.Oqtane.dll": 1,
  "Imageflow.AllPlatforms.dll": 1,
  "Imageflow.Net.dll": 1,
  "Imageflow.Server.dll": 1,
  "Imageflow.Server.HybridCache.dll": 1,
  "Imazen.Common.dll": 1,
  "Imazen.HybridCache.dll": 1,
  "Microsoft.IO.RecyclableMemoryStream.dll": 1,
  "Newtonsoft.Json.dll": 1,
  "Azure.Core.dll": 1,
  "Azure.Identity.dll": 1,
  "EFCore.NamingConventions.dll": 1,
  "Humanizer.dll": 1,
  "Microsoft.AspNetCore.Authentication.OpenIdConnect.dll": 1,
  "Microsoft.AspNetCore.Authorization.dll": 1,
  "Microsoft.AspNetCore.Components.Authorization.dll": 1,
  "Microsoft.AspNetCore.Components.dll": 1,
  "Microsoft.AspNetCore.Components.Forms.dll": 1,
  "Microsoft.AspNetCore.Components.Web.dll": 1,
  "Microsoft.AspNetCore.Components.WebAssembly.Authentication.dll": 1,
  "Microsoft.AspNetCore.Components.WebAssembly.dll": 1,
  "Microsoft.AspNetCore.Components.WebAssembly.Server.dll": 1,
  "Microsoft.AspNetCore.Cryptography.Internal.dll": 1,
  "Microsoft.AspNetCore.Cryptography.KeyDerivation.dll": 1,
  "Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll": 1,
  "Microsoft.AspNetCore.Metadata.dll": 1,
  "Microsoft.Bcl.AsyncInterfaces.dll": 1,
  "Microsoft.CodeAnalysis.CSharp.Workspaces.dll": 1,
  "Microsoft.CodeAnalysis.Workspaces.dll": 1,
  "Microsoft.Data.SqlClient.dll": 1,
  "Microsoft.Data.Sqlite.dll": 1,
  "Microsoft.EntityFrameworkCore.Abstractions.dll": 1,
  "Microsoft.EntityFrameworkCore.Design.dll": 1,
  "Microsoft.EntityFrameworkCore.dll": 1,
  "Microsoft.EntityFrameworkCore.Relational.dll": 1,
  "Microsoft.EntityFrameworkCore.Sqlite.dll": 1,
  "Microsoft.EntityFrameworkCore.SqlServer.dll": 1,
  "Microsoft.Extensions.Configuration.Binder.dll": 1,
  "Microsoft.Extensions.Identity.Core.dll": 1,
  "Microsoft.Extensions.Identity.Stores.dll": 1,
  "Microsoft.Extensions.Localization.Abstractions.dll": 1,
  "Microsoft.Extensions.Localization.dll": 1,
  "Microsoft.Extensions.Options.dll": 1,
  "Microsoft.Identity.Client.dll": 1,
  "Microsoft.Identity.Client.Extensions.Msal.dll": 1,
  "Microsoft.IdentityModel.Abstractions.dll": 1,
  "Microsoft.IdentityModel.JsonWebTokens.dll": 1,
  "Microsoft.IdentityModel.Logging.dll": 1,
  "Microsoft.IdentityModel.Protocols.dll": 1,
  "Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": 1,
  "Microsoft.IdentityModel.Tokens.dll": 1,
  "Microsoft.JSInterop.dll": 1,
  "Microsoft.JSInterop.WebAssembly.dll": 1,
  "Microsoft.OpenApi.dll": 1,
  "Microsoft.SqlServer.Server.dll": 1,
  "Mono.TextTemplating.dll": 1,
  "MySql.Data.dll": 1,
  "MySql.EntityFrameworkCore.dll": 1,
  "Npgsql.dll": 1,
  "Npgsql.EntityFrameworkCore.PostgreSQL.dll": 1,
  "Oqtane.Client.dll": 1,
  "Oqtane.Database.MySQL.dll": 1,
  "Oqtane.Database.PostgreSQL.dll": 1,
  "Oqtane.Database.Sqlite.dll": 1,
  "Oqtane.Database.SqlServer.dll": 1,
  "Oqtane.Server.dll": 1,
  "Oqtane.Shared.dll": 1,
  "SixLabors.ImageSharp.dll": 1,
  "SQLitePCLRaw.batteries_v2.dll": 1,
  "SQLitePCLRaw.core.dll": 1,
  "SQLitePCLRaw.provider.e_sqlite3.dll": 1,
  "Swashbuckle.AspNetCore.Swagger.dll": 1,
  "Swashbuckle.AspNetCore.SwaggerGen.dll": 1,
  "Swashbuckle.AspNetCore.SwaggerUI.dll": 1,
  "System.CodeDom.dll": 1,
  "System.Composition.AttributedModel.dll": 1,
  "System.Composition.Convention.dll": 1,
  "System.Composition.Hosting.dll": 1,
  "System.Composition.Runtime.dll": 1,
  "System.Composition.TypedParts.dll": 1,
  "System.Configuration.ConfigurationManager.dll": 1,
  "System.IdentityModel.Tokens.Jwt.dll": 1,
  "System.Memory.Data.dll": 1,
  "System.Runtime.Caching.dll": 1,
  "System.Security.Cryptography.ProtectedData.dll": 1
}

ToSic.Sxc.Oqtane.Install.17.02.00

[
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Apps.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Core.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.DataSources.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.ImportExport.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Persistence.Efc.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Repository.Efc.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.WebApi.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Lib.Core.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Razor.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Server.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Shared.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Razor.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.WebApi.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Client.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Razor.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.WebApi.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Apps.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Core.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.DataSources.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.ImportExport.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Repository.Efc.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.WebApi.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Lib.Core.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Razor.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Client.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Server.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Shared.pdb",
  "\\bin\\Debug\\net8.0\\ToSic.Eav.Persistence.Efc.pdb",
  "\\content\\2sxc\\system\\App_Data\\new-app\\app.json",
  "\\content\\2sxc\\system\\App_Data\\new-apps\\2sxcApp_AppTemplateBasic_0.17.0.zip",
  "\\content\\2sxc\\system\\App_Data\\new-apps\\templates.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-cms.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-copyright.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-datasources.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-decorators.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-fields-helpers.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-fields.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-queries.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-query.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-resources.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-settings-web-resources-data.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-settings.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system-wysiwyg-configs.json",
  "\\content\\2sxc\\system\\App_Data\\system\\bundles\\system.json",
  "\\content\\2sxc\\system\\App_Data\\system\\readme.md",
  "\\content\\2sxc\\system\\ImportExport\\Instructions\\2sxc_App_ByUnknown_NameUnknown.dnn",
  "\\content\\2sxc\\system\\ImportExport\\Instructions\\App installation instructions.txt",
  "\\content\\2sxc\\system\\ImportExport\\Instructions\\License.txt",
  "\\content\\2sxc\\system\\ImportExport\\Instructions\\Online help to install this app.url",
  "\\content\\2sxc\\system\\ImportExport\\Instructions\\ReleaseNotes.txt",
  "\\content\\2sxc\\system\\ImportExport\\readme.md",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_dev-rest_entry_entry_component_ts.aa1609181c9183a4.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_import-app_import-app_component_ts.f3349bc772d1dadb.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\code-editor.en.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\Module.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\en.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_autocomplete_mjs.19fa49f35fea921a.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_dev-rest_index_ts.ab225e8f1f0fbd14.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_import-query_import-query_component_ts.851f802aea5b4ba5.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_apps-management_apps-management_module_ts.e877f1920ad22457.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-import_content-import_component_ts.1545d5858420c3b0.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_services_entities_service_ts-projects_eav-ui_src_app_fe-fd552b1.482dc5a6c6ed65b9.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_metadata_metadata_module_ts-projects_eav-ui_src_app_shared_components-d0de86.1a10bcbbebe1e937.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_shared_directives_click-stop-propagation_directive_ts.1d47ed219819663d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\de.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\favicon.ico",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\i18n\\de.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\index.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\Module.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\es.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_app-administration_app-admin-helpers_ts-projects_eav-ui_src_a-5f6491.fb2469e18b39fdca.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\index-raw.html",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_analyze-settings_settings-item-details-4ac85a.b1b7c053daf18673.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_edit_refresh-edit_module_ts.2e3c3b71bb59717f.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_import-app_services_import-app_service_ts-projects_eav-ui_src_app_sha-1ab7ba.ebfed11f63a72105.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\en.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\index-raw.html",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\i18n\\en.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\index.js.LICENSE.txt",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\content\\2sxc-tinymce-skin\\content.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\NativeModule.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\fa.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_card_mjs.40c2849ca1f2b12d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_edit_edit_module_ts.52002532f5bae87f.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\main.5d3fb3286bea47fa.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_import-view_import-view_component_ts.ceeefa3ab05ad1f8.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_apps-management_create-app_create-app_component_ts.e919e0f77ea9fcce.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_content-items_component_ts.dc0465d7119d2430.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_services_entities_service_ts-projects_eav-ui_src_app_sh-bb0723.200fef7c64990541.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_permissions_permissions_component_ts.8928ed7d5e48aceb.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_visual-query_visual-query_module_ts.06ad6137097d3f39.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\es.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\main.ae5583518b6ca7ec.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\i18n\\es.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\content.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\assets\\app-primary.png",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\fr.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_app-administration_app-administration_module_ts.a0a63e4b29bd05d0.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_edit-content-type_edit-content-type_co-2abec4.600a826689fa8194.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_features_feature-names_ts-projects_eav-ui_src_app_features_feature-te-1f7d56.358100eaa8a95673.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_item-history_item-history_component_ts.84d6bd4df8e2bf5f.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\fa.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\i18n\\fr.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skintool.json",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\content.inline.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\assets\\logo.png",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\it.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_expansion_mjs.d947a6a19b8019ed.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_item-history_item-history_module_ts.15244199b6822bd4.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\polyfills.958fde6146c15dd5.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_language-permissions_language-permissi-a91b40.b843fe87f3c98163.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_apps-management_create-inherited-app_create-inherited-app_component_ts.3cf4aa8ffe8f4988.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_import-content-item_import-content-item_component_ts.f1d76665e7ad0f37.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-type-fields_content-type-fields_component_ts.dadddc29dfd1dffc.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_permissions_permissions_module_ts.2f2646ee96dc760d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\runtime.0ba34d0c518054d5.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\fr.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\polyfills.8153d1bbba6d08e5.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\i18n\\it.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\de.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\content.inline.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\cms\\wysiwyg.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\nl.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_app-administration_services_content-types_service_ts-projects-9c4dae.cba6d02dc4c23037.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_export-app-parts_export-app-parts_comp-b04a2d.0fc5e968dd81512e.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_features_feature-names_ts-projects_eav-ui_src_app_features_feature-te-84c97c0.31088320abd23214.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_manage-content-list_manage-content-list_component_ts.8426f1d1bce608cd.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\hr.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\i18n\\uk.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\es.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\content.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\uk.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_list_mjs.980e080c67979a2b.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_permissions_index_ts.efc9d74426d26b8d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_app-administration-nav_app-administration-nav_comp-1b3e30.75e0da52a8896488.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_views-usage_views-usage_component_ts.f552aa6989809334.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_code-editor_code-editor_module_ts-projects_eav-ui_src_app_shared_comp-2b2737.8344f0bc5b3ec526.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_services_entities_service_ts-projects_eav-ui_src_app_fe-971bb5.cb2c60e23aefe649.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-type-fields_edit-content-type-fields_edit-content-type-fields-f4d799.b87e7dee51fd9fa4.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_replace-content_replace-content_component_ts.d317b72b0502eca4.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\scripts.7acd0cee9200dc38.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\it.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\runtime.b35e375d98efabf7.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\turnOn\\turn-on.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\fr_FR.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\content.mobile.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\inpage.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-assets\\snippets.json.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_app-administration_services_index_ts-projects_eav-ui_src_app_-8ef502.fb72d718d3d50755.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_export-app_export-app_component_ts.1e9ac1678a6fe15d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_features_feature-names_ts-projects_eav-ui_src_app_features_feature-te-84c97c1.1d7bf6025a3635f0.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_manage-content-list_manage-content-list_module_ts.85c392518230e932.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\nl.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\it.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\content.mobile.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\3rdpartylicenses.txt",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_menu_mjs.266eae1f04e5d13d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_shared_components_file-upload-dialog_index_ts.084df75cb0c587a9.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_services_app-dialog-config_service_ts-_86580.86375c837858b165.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_apps-management_add-app-from-folder_add-app-from-folder_component_ts.35ab856afec59fe2.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-export_content-export_component_ts.e75b693d0b185a52.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_services_entities_service_ts-projects_eav-ui_src_app_fe-b85bdd.2af3f8fb8f46f3a0.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-type-fields_services_content-types-fields_service_ts-projects-92b1c3.611ebad2bed7b2ee.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_shared_components_dialog-entry_dialog-entry_component_ts-node_modules-32de6c.31d4ebb4235a8a02.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\styles.d9e9c6841256e75f.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\pt.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\styles.8584cf96ec04f867.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\js\\2sxc.api.min.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\nl.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\skin.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\inpage.min.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\common.cec4ae35244a0fcb.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_content-type-fields_content-type-fields_module_ts.d70ec52fed353377.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_import-app-parts_import-app-parts_comp-cf6fb0.36f8d2e38717d59d.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_features_feature-names_ts-projects_eav-ui_src_app_features_feature-te-e1a60e.491ad4a77b2646f0.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_metadata_metadata_component_ts.9ec8901b20ee8edd.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\i18n\\uk.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\pt_PT.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\skin.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\inpage.min.js.LICENSE.txt",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_select_mjs.98e5dc4f38c7d84a.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_shared_directives_click-stop-propagation_directive_ts-node_mo-18fe20.9007f09ded459208.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_services_app-dialog-config_service_ts-_86581.6b1816c14765320c.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_apps-management_apps-management-nav_apps-management-nav_component_ts.1f6cee5735d01912.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-export_services_content-export_service_ts-projects_eav-ui_src-5edb4d.5c6de161c7b97c32.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_content-items_services_entities_service_ts-projects_eav-ui_src_app_fe-fd552b0.588c3df4542a8623.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_dev-rest_dev-rest_module_ts.6f7c92e4b69d1ede.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_shared_components_dialog-entry_dialog-entry_component_ts.b0f759f15d67080e.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\vendor.d5295343a032abf9.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\3rdpartylicenses.txt",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\quick-dialog\\vendor.2894d858efe5af89.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-custom-gps\\index.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\i18n\\uk.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\skin.mobile.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_cdk_fesm2022_drag-drop_mjs.99e6da0568a601e9.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_create-file-dialog_index_ts.24a4ffd5a4e7a202.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_import-content-type_import-content-typ-e2ad96.85cab9e20a5b3081.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\content\\2sxc-tinymce-skin\\content.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\skin.mobile.min.css",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\inpage\\i18n\\de.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-node_modules_angular_material_fesm2022_slide-toggle_mjs.5d3912894c99b35c.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\default-projects_eav-ui_src_app_shared_shared-components_module_ts.35599b7de0a9df08.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\dist\\ng-edit\\projects_eav-ui_src_app_app-administration_sub-dialogs_analyze-settings_analyze-settings_comp-6cd38e.5cc588cdf556d9b7.js",
  "\\wwwroot\\Modules\\ToSic.Sxc.Oqtane\\system\\field-string-wysiwyg\\skins\\ui\\2sxc-tinymce-skin\\fonts\\tinymce-mobile.woff",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.xml",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Shared.xml",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Client.xml",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Oqtane.Server.xml",
  "\\bin\\Debug\\net8.0\\ToSic.Sxc.Razor.xml",
  "\\bin\\Debug\\net8.0\\Connect.Koi.dll",
  "\\bin\\Debug\\net8.0\\CsvHelper.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.AspNetCore.Mvc.Razor.Extensions.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.AspNetCore.Razor.Language.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.CodeAnalysis.CSharp.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.CodeAnalysis.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.CodeAnalysis.Razor.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.Extensions.DependencyModel.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Imageflow.Oqt.Server.Oqtane.dll",
  "\\bin\\Debug\\net8.0\\ToSic.Imageflow.Oqt.Server.Oqtane.pdb",
  "\\bin\\Debug\\net8.0\\Imageflow.AllPlatforms.dll",
  "\\bin\\Debug\\net8.0\\Imageflow.Net.dll",
  "\\bin\\Debug\\net8.0\\Imageflow.Server.dll",
  "\\bin\\Debug\\net8.0\\Imageflow.Server.HybridCache.dll",
  "\\bin\\Debug\\net8.0\\Imazen.Common.dll",
  "\\bin\\Debug\\net8.0\\Imazen.HybridCache.dll",
  "\\bin\\Debug\\net8.0\\Microsoft.IO.RecyclableMemoryStream.dll",
  "\\bin\\Debug\\net8.0\\Newtonsoft.Json.dll",
  "\\bin\\Debug\\net8.0\\runtimes\\win-x64\\native\\imageflow.dll",
  "\\bin\\Debug\\net8.0\\runtimes\\win-x86\\native\\imageflow.dll"
]
thabaum commented 8 months ago

@sbwalker it looks like this maybe resolved in latest release and I tested with the Oqtane Labs modules available and no issues uninstalling on todays current branch, closing issue.

thabaum commented 8 months ago

@sbwalker I am going to reopen this with further inspection, I generated a similar issue with the blog module. It happens when there is still a module on a page being used and then by uninstalling the module from administration panel. Otherwise I think it works ok? I will update the issue.

image

image

sbwalker commented 8 months ago

This will require some more investigation. The ModuleDefinitionController Delete method contains the following logic to delete the Module/PageModule instances which may exist:

                // remove PageModule and Module
                List<Models.Module> modulesToRemove =  _modules.GetModules(moduledefinition.SiteId).Where(m => m.ModuleDefinitionName == moduledefinition.ModuleDefinitionName).ToList();
                foreach (Models.Module moduleToRemove in modulesToRemove)
                {
                    // Get the PageModule items associated with the Module item to be removed
                    List<PageModule> pageModulesToRemove = _pagemodules.GetPageModules(moduledefinition.SiteId).Where(pm => pm.ModuleId == moduleToRemove.ModuleId).ToList();

                    foreach(PageModule pageModule in pageModulesToRemove)
                    {
                        // Remove the PageModule item
                        _pagemodules.DeletePageModule(pageModule.PageModuleId);
                    }

                    // Remove Permissions
                    _permissions.DeletePermissions(moduledefinition.SiteId, EntityNames.Module, moduleToRemove.ModuleId);

                    // Remove the Module item
                    _modules.DeleteModule(moduleToRemove.ModuleId);
                }

However this is not going to work properly in a multi-tenant environment where site information could be stored in different isolated databases. In fact, the "In Use" column in the main display is also not 100% accurate as it only displays if the module is in use in the current Site - not if it is in use in any site in the entire installation.

My initial reaction is that a module should be able to be uninstalled... and if that module is in use on any site in the installation, the framework will need to include defensive logic during rendering to catch the condition where the module may not actually exist - and display a friendly error message.

mdmontesinos commented 8 months ago

Also facing this issue when trying to unistall 2sic modules and they were included in a page.

sbwalker commented 8 months ago

duplicate of #3947