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 を定義することです。私のアプリは主にシステム トレイの 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は、セキュリティ、標準への準拠、正確性、信頼性、およびパフォーマンスを向上させるために行われたいくつかの変更を除いて、以前の.NETFrameworkバージョンで構築されたアプリケーションとの互換性が高くなっています。

.NET Framework 4は、そのバージョンの共通言語ランタイムを自動的に使用して、以前のバージョンの.NETFrameworkで構築されたアプリケーションを実行しません。.NET Framework 4で古いアプリケーションを実行するには、VisualStudioのプロジェクトのプロパティで指定されたターゲット.NETFrameworkバージョンを使用してアプリケーションをコンパイルするか、アプリケーション構成ファイルのElementでサポートされているランタイムを指定できます。

于 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 に答える