【问题标题】:Published version WPF .NET Core已发布版本 WPF .NET Core
【发布时间】:2021-05-11 23:10:02
【问题描述】:

我希望在 .net 核心 WPF C# 应用程序中使用如下格式。 这是我以前的使用方法。

public static string GetVersion()
{
   if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
   {
      Version myVersion = ApplicationDeployment.CurrentDeployment.CurrentVersion;
      return $"Version {myVersion}";
   }
   return "Version not deployed";
}

请问.net core 中有匹配过程吗? 谢谢

【问题讨论】:

    标签: c# wpf visual-studio .net-core


    【解决方案1】:

    a closed issue 围绕这个问题和ClickOnce 部署。

    ApplicationDeployment 类不可用 - 该类在System.Deployment assembly 中实现,不是 .NET Core 3.1 或 .NET 5 的一部分

    我们将有办法公开该类启用的一些属性,即 URL 参数和更新状态。但是,对于 .NET 5 版本,这项工作无法完成。我们将在 .NET 6 预览版之一中启用它。以下是跟踪问题:#27 和 #53

    无法在部署的 ClickOnce 应用程序中使用 ApplicationDeployment 类,但可以使用主要的 ClickOnce 体验。它包括:创建 ClickOnce 部署(清单)、发布应用程序、创建和发布更新。您的应用程序将获得自动更新检查(如果用户接受,则更新) - 这部分由 ClickOnce 运行时和新的 Launcher 工具处理,该工具成为 .NET Core 3.1 和 .NET 5 应用程序的 ClickOnce 部署的入口点。

    因此,就目前而言,似乎没有办法直接在 .NET Core 中执行此操作。

    【讨论】:

    • 又怎么能间接做到呢?
    • @IstvanHeckl 我的意思是这不是框架内置的。
    • 好的,我知道它不在框架中。但是有什么选择呢?我仍然想显示 CurrentVersion,我还想显示 CurrentDeployment.DataDirectory(所以用户现在在哪里 mdf 文件)。为了解决第一个问题,我可以硬编码一个字符串并在有新版本时更改它(不好)。对于第二个问题我不知道。
    【解决方案2】:

    您应该能够使用 System.Reflection.Assembly.GetExecutingAssembly().GetName().Version 获取程序集版本,如图所示 Reading Assembly version information of WPF application

    有关未移植到 .net core3.1/5/6 的更多单击一次功能,请查看此处https://github.com/derskythe/WpfSettings

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多