0

我已经能够在我的开发机器上运行我的 C# .net 3.5 应用程序,但我似乎无法让它在其他任何地方运行。客户端机器安装了 4.0 .net 客户端配置文件,在查找客户端配置文件中遗漏的内容后,我怀疑安装完整的 4.0 框架会有所作为。

我正在使用这些库中的类:

using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Drawing;
using System.IO;
using System.Diagnostics;
using Microsoft.Win32;

我正在做的唯一不同寻常的事情是定义一个 CustomApplicationContext 而不是您将用于 Forms 应用程序的普通 App Context。我的应用程序主要作为系统托盘中的 NotifyIcon 运行,所以我只是设置了一个主界面是系统托盘图标的类。没有什么太离奇的了。

出于测试目的,我的第一行代码显示了一个 MessageBox,即使它也不会运行。每当我在部署机器上启动它时,都会弹出一个框说“应用程序无法启动”并关闭。

有谁知道为什么会这样做?我似乎无法让它运行一些代码。

4

3 回答 3

2

也许您需要将 .Net4.0 添加到您支持的运行时列表中。将以下行添加到您的 app.config

<configuration>
   <startup useLegacyV2RuntimeActivationPolicy="true">
      <supportedRuntime version="v4.0"/>
   </startup>
</configuration>
于 2012-06-09T21:08:58.410 回答
1

也许并非所有东西都能在新框架上正确运行,但您是否尝试过按照http://msdn.microsoft.com/en-us/library/ms171868.aspx上的描述明确设置目标框架

复制:

.NET Framework 4 与使用早期 .NET Framework 版本构建的应用程序高度兼容,但为了提高安全性、标准合规性、正确性、可靠性和性能而进行了一些更改。

.NET Framework 4 不会自动使用其公共语言运行库版本来运行使用早期版本的 .NET Framework 构建的应用程序。要使用 .NET Framework 4 运行较旧的应用程序,您必须使用 Visual Studio 中项目属性中指定的目标 .NET Framework 版本编译应用程序,或者您可以使用应用程序配置文件中的元素指定支持的运行时。

于 2012-06-09T19:59:58.960 回答
0

遗憾的是,仅安装 .NET Framework 4 不会运行 .NET 3.5 应用程序。3.5 将运行 2.0、3.0 和 3.5 应用程序,但 4 是一项重大改进,因此如果用户的机器上没有安装 3.5,它将无法工作。

于 2012-06-09T19:06:12.787 回答