c# - 阅读 msix 包 appxmanifest 版本

标签 c# core msix

我们有一个仅在内部使用的 .Net Core 应用程序。在从 WPF 切换到 .Net Core 的过程中,我们从 Click-Once 更改为 MSIX。在我们应用程序的窗口标题/标题中,我们还“输出”了当前版本(主要版本、次要版本……)。以前,我们采用了启动项目的版本(称为“ View ”)。现在使用MSIX,这个项目已经得到了我们需要的版本号(启动项目引用“查看”)。我们现在怎样才能读到正确的版本?

使用 Assembly.GetEntryAssemblyAssembly.GetCallingAssembly返回错误的版本 - 启动项目的版本。该应用程序不在 Windows 应用商店中,它将作为包进行侧面加载。有什么想法可以在部署我们的包时获得我们“生产”的“正确”版本?

谢谢!

最佳答案

您需要安装 Windows 10 WinRT API 包。从 Nuget 安装包: Microsoft.Windows.SDK.契约(Contract)
网址:https://www.nuget.org/packages/Microsoft.Windows.SDK.Contracts
然后你可以做这样的事情:

var version = Windows.ApplicationModel.Package.Current.Id.Version;
applicationVersion = string.Format("{0}.{1}.{2}.{3}",
    version.Major,
    version.Minor,
    version.Build,
    version.Revision);
如果您想使用当前可用的包进行调试或运行,只需将您的包部署项目设置为启动项目。
其他引用资料:
https://blogs.windows.com/windowsdeveloper/2019/09/30/windows-10-winrt-api-packs-released/
https://docs.microsoft.com/en-us/uwp/api/
https://www.thomasclaudiushuber.com/2019/04/26/calling-windows-10-apis-from-your-wpf-application/

关于c# - 阅读 msix 包 appxmanifest 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62161949/

相关文章:

c# - 为什么我的异常处理程序没有在 Sitecore.mvc.Pipelines 中触发?

java - java编译器中的常量折叠是什么?

java - 使用synchronized方法和 block 解决Java线程中的计数器问题

java - HTTP 组件核心跟随重定向

windows-store-apps - list 文件中的 MSIX 多个应用程序

wpf - 如何让 MSIX 应用安装程序在每次生成/发布期间输出正确的设置?

c# - 如何在 C# 中使用动态分配创建类对象数组?

c# - 如何将 javascript 和 cshtml 文件分散到单独的项目中

c# 在图片框上绘制一个矩形?

windows - 如何更改 msix 包的安装位置?