2

こんにちは私は他のコンピューター(私の外)に実装する準備ができているWinFormsアプリケーションを作成しました。他の場所で実行するのに問題があります。

Program.csファイルには、問題が何であるかを確認するためにこれがあります。

static void Main()
{
   try
   {
       Application.EnableVisualStyles();
       Application.SetCompatibleTextRenderingDefault(false);
       Application.Run(new mainForm());
    }
    catch(SystemException ex)
    {
       MessageBox.Show("Error: ", ex.ToString());
    }
}

の追加以外は、ここで編集したものはありませんtry/catchProgram.csブロックのさまざまな段階で一連のメッセージボックスが表示されるように設定されているため、問題がこれにあることはわかっていMainForm_Load()ます。アプリケーションはそれらのいずれにも到達しません。

これはおそらく本当に曖昧に聞こえますが、私はこのアプリケーションを私のラップトップ以外の場所で動作させることができません。Usingsそれは私が持っているものの1つでしょうか?必要に応じてそれらを含めることができます。

編集2:Markoの提案に従って、実行しようとしているEXEと同じルートフォルダーにすべての外部DLLをコピーしました。3番目のtry-catchブロックは、から例外をスローしており、Program.csこれApplication.Run(new mainForm());を私の32行目にトレースしましたmainForm.cs。この行には、バックグラウンドワーカーがいます。

private BackgroundWorker snBW = new BackgroundWorker();

近づいていますか?

4

3 に答える 3

2

素晴らしくてかっこいい質問。

ターゲットフレームワークのバージョンが欠落しているか、破損しているか、オフになっているために、アプリケーションが失敗することがあります。アプリケーションに必要なフレームワーク、フルプロファイルまたはクライアントプロファイルを確認し、使用する前にインストールできます。

破損したフレームワークの問題は、そのコンポーネントのMicrosoft Updateが壊れているために、.Net2.0でよく発生します。これは、さまざまなマシンで時々発生します。解決策は、フレームワークを再インストールすることです。

非アクティブ化された.Net3.5機能の問題は、Windows 7、2008Serverで発生することがあります。これは、Windowsの機能でアクティブ化できます。

多くの.Net3.5アプリケーションには、実際には.Net3.5SP1が必要です。

于 2012-05-26T18:02:16.320 に答える
0

まず、適切な.netFrameworkがコンピューターにインストールされているかどうかを確認します。次に、外部ライブラリを使用している場合は、必要なすべてのdllをアプリケーションフォルダにコピーしてください。

于 2012-05-26T18:02:15.943 に答える
0

イベントハンドラーは、Form.Load外部のtry-catchブロックのコンテキスト内では実行されません。UIイベントは事実上コールバックです。効果的なデバッグを行うには、各ハンドラー内で新しいtry-catchブロックを宣言する必要があります。

于 2012-05-26T18:02:55.643 に答える