UWP应用程序中的可扩展性(插件)
我们正在调查UWP是否可以作为WPF应用程序的合适替代品。在我们的WPF应用程序中,我们使用可扩展性(插件)向我们的应用程序添加额外的(特定于客户的)逻辑。我们目前使用NuGet包来部署/更新这些扩展,并在运行时加载它们 在UWP中,是否可以:UWP应用程序中的可扩展性(插件),uwp,win-universal-app,Uwp,Win Universal App,我们正在调查UWP是否可以作为WPF应用程序的合适替代品。在我们的WPF应用程序中,我们使用可扩展性(插件)向我们的应用程序添加额外的(特定于客户的)逻辑。我们目前使用NuGet包来部署/更新这些扩展,并在运行时加载它们 在UWP中,是否可以: 在UWP中动态加载插件(我认为这是不可能的,因为沙箱可能会阻止加载动态模块) 通过商店交付这些扩展(但需要为任何其他用户隐藏) LoadPackagedLibrary可以动态加载UWP中的插件 但它只能在appx中加载dll 如何使用LoadPackag
LoadPackagedLibrary可以动态加载UWP中的插件 但它只能在appx中加载dll 如何使用LoadPackagedLibrary,请参阅 如果要使用其他目录中的win32 dll,请获取可以使用它的LoadLibrary 你可以用
MEMORY_BASIC_INFORMATION info = {};
if (VirtualQuery(VirtualQuery, &info, sizeof(info)))
{
auto kernelAddr = (HMODULE)info.AllocationBase;
auto loadlibraryPtr = GetProcAddress(kernelAddr, "LoadLibraryExW");
// load your library here ...
}
获取loadlibrary并使用loadlibrary加载dll
看
Ms使用PE和p/Invoke来判断uwp是否使用了不允许的dll
因此,您可以使用loadlibrary来加载它。LoadPackagedLibrary可以动态加载UWP中的插件 但它只能在appx中加载dll 如何使用LoadPackagedLibrary,请参阅 如果要使用其他目录中的win32 dll,请获取可以使用它的LoadLibrary 你可以用
MEMORY_BASIC_INFORMATION info = {};
if (VirtualQuery(VirtualQuery, &info, sizeof(info)))
{
auto kernelAddr = (HMODULE)info.AllocationBase;
auto loadlibraryPtr = GetProcAddress(kernelAddr, "LoadLibraryExW");
// load your library here ...
}
获取loadlibrary并使用loadlibrary加载dll
看
Ms使用PE和p/Invoke来判断uwp是否使用了不允许的dll
因此,您可以使用loadlibrary来加载它。从周年更新开始,UWP本机支持可通过Windows应用商店分发的应用程序扩展。你可以找到更多信息,或者
您可以在devcenter仪表板中管理UWP应用程序的可见性(我认为对于应用程序扩展也可以这样做)。查看以获取更多信息。从周年更新开始,UWP本机支持可通过Windows应用商店分发的应用程序扩展。你可以找到更多信息,或者
您可以在devcenter仪表板中管理UWP应用程序的可见性(我认为对于应用程序扩展也可以这样做)。查看以获取更多信息。尝试使用LoadPackagedLibrary尝试使用LoadPackagedLibrary可以绕过WACK,但如果您开始调用不受支持的API,这将导致未定义的行为,你的应用程序迟早会失败。@PeterTorr MSFT它可以通过wack并调用win32 api,它也可以工作。它今天可能工作,但明天可能会中断。你的建议不受支持。任何人都不应该在生产应用程序中这样做。@PeterTorr MSFT但有一种解决方法。Ms在他们的edge和store应用程序中打破了规则。但这是UWP。因此它应该遵守规则。可以绕过怪癖,但如果你开始调用不受支持的API,这将导致未定义的行为,你的应用程序迟早会失败。@PeterTorr MSFT它可以通过wack并调用win32 api,它也可以工作。它今天可能工作,但明天可能会中断。你的建议不受支持。任何人都不应该在生产应用程序中这样做。@PeterTorr MSFT,但有一种方法可以解决它。Ms在他们的edge和store应用程序中打破了规则。但这是UWP。因此它应该遵守规则。