有没有办法检查当前应用程序是否是misx应用程序

问题描述 投票:0回答:2

我正在将当前使用 ClickOnce 部署的 C#/WPF 应用程序转换为 MSIX。我想检查代码,当前执行是否来自 MSIX 包内,或者是否仅执行 .exe,类似于 ClickOnce 的

ApplicationDeployment.IsNetWorkDeployed
属性。 作为目前的解决方法,我使用 try catch 块尝试访问 Package.Current.Displayname 并在 catch 块中设置 isMsix 属性,但我想知道是否有更好的方法使用某些方法或属性?

c# wpf deployment packaging msix
2个回答

0
投票

来自 MAUI 存储库

public static class AppInfoUtils
{
    static readonly Lazy<bool> _isPackagedAppLazy = new Lazy<bool>(() =>
    {
        try
        {
            if (Package.Current != null)
                return true;
        }
        catch
        {
            // no-op
        }

        return false;
    });

    public static bool IsPackagedApp => _isPackagedAppLazy.Value;
}
© www.soinside.com 2019 - 2024. All rights reserved.