我们有一个.Net Core应用程序,仅在内部使用。从WPF切换到.Net Core的过程中,我们从Click-Once更改为MSIX。在应用程序的窗口标题/标题中,我们也“输出”当前版本(主要,次要,...)。以前,我们采用了启动项目的版本(称为“视图”)。现在使用MSIX,该项目已获得我们需要的版本号(启动项目被引用为“视图”)。我们现在如何读取正确的版本?
使用Assembly.GetEntryAssembly
或Assembly.GetCallingAssembly
返回错误的版本-启动项目的版本。该应用程序不在Windows应用商店中,它将作为软件包侧面加载。有什么想法可以在部署程序包时获得我们“生产”的“正确”版本?
谢谢!
答案 0 :(得分:2)
您需要安装Windows 10 WinRT API包。从Nuget安装软件包: Microsoft.Windows.SDK.Contracts
URL:https://www.nuget.org/packages/Microsoft.Windows.SDK.Contracts
然后您可以执行以下操作:
~$ sudo find / -name "libz.1.dylib"
/usr/local/homebrew/Cellar/zlib/1.2.11/lib/libz.1.dylib
/System/Volumes/Data/usr/local/homebrew/Cellar/zlib/1.2.11/lib/libz.1.dylib
...
(lib.1.dylib from CoreSimulator)
如果要调试或使用当前可用程序包运行,只需将程序包部署项目设置为“启动项目”。
其他参考文献:
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/