我已经能够在我的开发机器上运行我的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运行,所以我只设置了一个主要界面是System Tray Icon的类。没什么太奇怪的。
出于测试目的,我的第一行代码显示了一个MessageBox,甚至不会运行。每当我在部署机器上启动它时,只会弹出一个框,说“App无法启动”并关闭。
有没有人知道为什么会这样做?我似乎无法让它运行一些代码。
答案 0 :(得分:2)
您可能需要将.Net4.0添加到支持的运行时列表中。将以下行添加到app.config
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
答案 1 :(得分: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版本编译应用程序,或者可以使用应用程序配置文件中的Element指定支持的运行时。 / p>
答案 2 :(得分:0)
只安装了.NET Framework 4,不会遗憾地运行.NET 3.5应用程序。 3.5将运行2.0,3.0和3.5应用程序,但4是一次重大改造,因此如果用户的计算机上没有安装3.5,它将无法运行。