【问题标题】:.NET Framework 4.0.3 as a Prerequisite in ClickOnce package.NET Framework 4.0.3 作为 ClickOnce 包中的先决条件
【发布时间】:2015-07-29 17:59:34
【问题描述】:

我有一个面向 .NET 4.0 的应用程序,打包为 ClickOnce 部署——使用 VS 2015 Enterprise 构建。仅安装 4.0 即可正常安装,但在测试中我发现该应用程序需要更新 4.0.3 (KB2600211) 才能正常工作。

如何将此更新作为安装软件的先决条件?它似乎不是一个选项:

【问题讨论】:

  • 您是否尝试过以 4.5 为目标?我在想 4.5 将包括 4.0.3
  • @PhilSattele 我不能。支持 Windows XP 是该项目的固定要求,Windows XP 不支持 .NET 4.5。不幸的是,似乎 4.0.3 是所有必需的操作系统都支持的唯一版本并且具有使软件正确运行的功能。
  • .NET 框架 4 和 .NET 框架 4 的更新怎么样?

标签: .net visual-studio .net-4.0 clickonce visual-studio-2015


【解决方案1】:

目前我还没有真正找到解决方案,但我想出了这个相当笨拙的解决方法。基本上,我找到了在没有此更新的系统上引发错误的应用程序启动代码部分,并将其包装在特殊的错误处理代码中。在那个错误处理程序中,我只是对当前运行时版本进行手动检查,如果失败,我会向用户显示特定的错误消息。

private static string InvalidFxVerMessage = 
    "This application requires .NET Framework v{0} or later but has detected that your system is running v{1}.\n\n" +
    "Please contact your system administrator to install the following components: \n" +
    "\u2003\u2022 Update 4.0.3 for Microsoft .NET Framework 4 – Runtime Update (KB2600211)"

private void InitializeApp()
{
    try
    {
        // Run some code that throws an exception if update 4.0.3 is not installed.
    }
    catch (Exception)
    {
        var envVers = Environment.Version;
        var reqVers = new Version(4, 0, 30319, 551);
        if (envVers < reqVers)
        {
            var msg = string.Format(InvalidFxVerMessage, reqVers, envVers);
            MessageBox.Show(
                msg,
                "Unsupported Framework Version",
                MessageBoxButton.OK,
                MessageBoxImage.Error);
            Environment.Exit(0);
        }

        throw;
    }
}

这不是很好,我很想找到一个更好的解决方案,但这至少可以告诉用户究竟出了什么问题,并告诉他们如何修复它。

【讨论】:

    猜你喜欢
    • 2012-10-10
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多