4

几天前,我的 .NET 3.5 应用程序在开始发出错误时开始失败

“无法找到运行此应用程序的运行时版本”。

因为我没有对他们做任何事情,这对我来说看起来很奇怪。经过一番调查,我发现原因是 Windows 自动更新,它在我的计算机上安装了 .NET 3.5 或 .NET 4 的服务包(我不知道两者中的哪一个是有罪的)。该更新无法卸载,因为它未显示在控制面板的已安装 Windows 更新列表中。我不得不恢复到系统还原点!

今天我的一位客户抱怨同样的问题。我不能强迫他恢复系统还原,所以我需要知道如何克服这个愚蠢的微软问题。任何人都可以分享你的想法吗?

PS 该软件受 CodeVeil 1.2 保护,也许这很重要。

4

3 回答 3

2

在我们提出解决方案之前,我们需要了解这里发生了什么。解决这个问题的第一步是获取更多信息

  • 您的应用程序是针对哪个版本的 CLR 编译的?
  • 机器上安装了哪些版本的 CLR?
  • 机器是什么操作系统?

通常,当针对计算机上未安装的 CLR 版本编译应用程序时,会出现此错误消息。例如,有一个 2.0 的应用程序,但只有一个 4.0 的 CLR。

于 2010-06-28T06:26:54.360 回答
1

谢谢大家的帮助!

我终于发现这是旧的 CodeVeil,它在破坏应用程序方面是有罪的。安装 .NET 4.0 更新后,所有受 CodeVeil 1.2 保护的应用程序都被彻底破坏。我购买了该产品的最新版本,现在可以使用了。

于 2010-07-05T08:50:42.317 回答
-1

就我而言,问题很容易解决,在 app.config 文件中添加以前的运行时版本,如此处所述 https://msdn.microsoft.com/en-us/library/jj152935(v=vs.110).aspx

<?xml version="1.0"?>
<configuration>
    <startup>
        <supportedRuntime version="<YOUR_VERSION>"/>
    </startup>
</configuration>

在您的情况下,按照上面的文档应该是“v2.0.50727”,因为这个字符串也被映射到 .NET 3.5。

可能的版本列表在那里 https://msdn.microsoft.com/en-us/library/jj152935(v=vs.110).aspx

于 2011-07-15T14:59:59.940 回答