我有一个针对.NET 4.0的应用程序打包为使用VS 2015 Enterprise构建的ClickOnce部署。只安装了4.0就可以安装,但在测试中我发现应用程序需要更新4.0.3(KB2600211)才能正常工作。
答案 0 :(得分: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;
}
}
这不是很好,我很想找到更好的解决方案,但这至少会告诉用户究竟出了什么问题,并告诉他们如何修复它。