我已经将WPF应用程序打包为MSIX,但是相同的代码也可以打包为ClickOnce,也可以在没有任何可移植性的情况下工作。在运行时检测使用哪种包装技术(如果有)的最佳方法是什么?
编辑:我将尽力澄清一些事情,因为问题已被否决,没有任何评论。现有应用打包为ClickOnce。我们正在尝试将其移至MSIX,这样接缝就可以正常工作,但是并不是立即迁移整个用户群,而且由于“现代”包装方式引入了很多[ C0],应以不同的方式处理。
是,您可以使用limitations查看您是否正在作为打包应用程序运行。假设您使用的是C#(但也可以使用C ++等):
Windows.ApplicationModel.Package.Current
(来自internal static bool IsPackaged()
{
try
{
// If we have a package ID then we are running in a packaged context
var dummy = Windows.ApplicationModel.Package.Current.Id;
return true;
}
catch
{
return false;
}
}
)。