我已经能够在我的开发机器上运行我的 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;
我正在做的唯一不同寻常的事情是定义一个自定义应用程序上下文,而不是您将用于表单应用程序的普通应用程序上下文。 我的应用程序主要作为系统托盘中的 NotifyIcon 运行,所以我只是设置了一个类,其主界面是该系统托盘图标。 没什么太离奇的。
出于测试目的,我让我的第一行代码显示一个 MessageBox,即使它也不会运行。 每当我在部署计算机上启动它时,都会弹出一个框,上面写着"应用程序无法启动"并关闭。
有谁知道它为什么要这样做? 我似乎无法让它运行一些代码。
也许您需要的是添加 .Net4.0 到支持的运行时列表。将以下行添加到您的 app.config
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
也许并非所有内容都可以在新框架上正常运行,但是您是否尝试过显式设置目标框架
,如 http://msdn.microsoft.com/en-us/library/ms171868.aspx 中所述复制:
.NET Framework4 与使用早期 .NET Framework 版本构建的应用程序高度兼容,但为提高安全性、标准合规性、正确性、可靠性和性能而进行的一些更改除外。
.NET Framework4 不会自动使用其公共语言运行库版本来运行使用早期版本的 .NET Framework 生成的应用程序。若要使用 .NET Framework 4 运行较旧的应用程序,必须使用 Visual Studio 中项目属性中指定的目标 .NET Framework 版本编译应用程序,或者可以使用应用程序配置文件中的 Element 指定支持的运行时。
安装了.NET Framework 4不会运行.NET 3.5应用程序。3.5 将运行 2.0、3.0 和 3.5 应用程序,但 4 是大修,因此如果用户的机器上没有安装 3.5,它将不起作用。