无法部署 Visual C# 应用程序



我已经能够在我的开发机器上运行我的 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 Framework

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

.NET Framework

4 不会自动使用其公共语言运行库版本来运行使用早期版本的 .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,它将不起作用。

最新更新