0

私のアプリは私のマシンで正常に動作します(もちろん/有名な最後の言葉)。ただし、ネットワーク上の別のマシンに展開すると、起動すらしません。そのマシンで EventLog ユーティリティを実行したところ、次のように表示されました。

Type:Error
Source: .NET Runtime
Time Generated: 06/12/2012 15:35:12
Message: Application: duckbilledPlatypus.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.TypeInitialization
Exception
Stack:
   at duckbilledPlatypus.PlatypusMainForm..ctor()
at duckbilledPlatypus.Program.Main()

だから、どうやら問題は私のメインフォームのコンストラクターの何かです...私は認めますが、それは少し「忙しい」です:

InitializeComponent();

foreach (string arg in Environment.GetCommandLineArgs())
{
    if (arg == "-DEBUG")
    {
        InDebugMode = true;
        break;
    }
}

SuspendLayout();
tsch = new ToolStripControlHost(dateTimePickerScheduleDate);
toolStripPlatypusMain.Items.Add(tsch);

CreateTableLayoutPanelAndChildren();

LimitPlatypusIDTextBoxesToOneChar();
ShareEventsAmongDynamicTextBoxes();

SetAllPlatypusDataControlsReadOnly();
ResumeLayout();

これのいずれかが問題に見えますか? (ToolStripControlHost を除いて、すべてかなり標準的なものです)。

フレームワークのバージョンについて: イベント ログは、アプリの作成に使用されたフレームワークのバージョン、またはアプリを実行しようとしているマシンにインストールされているフレームワークのバージョンを報告しますか? 前者と後者にそのフレームワークがインストールされていない場合、それは問題ですよね?

それが潜在的に問題である場合、そのマシンにインストールされている .NET ランタイムのバージョンを確認するにはどうすればよいでしょうか?

アップデート

これがなぜなのかはわかりませんが、リモート/展開でアプリを実行した後、右クリックして [実行] を選択した場合にのみ、エラーメッセージを表示できました (何も持っていないため、自分自身として実行しました)。そのマシンの「より特別な」特権)。そうすると、「このアプリケーションを実行するランタイムのバージョンが見つかりません」というメッセージが表示されました。

アプリを 2 回クリックするだけで、気まぐれ (エラー メッセージなし) なしで終了します。

4

1 に答える 1

1

を表示

%WINDIR%\Microsoft.NET\Framework ディレクトリを表示する

インストールされている .NET のバージョンを確認します。

http://msdn.microsoft.com/en-us/library/y549e41e.aspx

問題のあるマシンで Fusion Log Viewer を実行してみてください。バインディングの失敗に関する詳細が提供されます。

http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.100).aspx

必ず管理者として実行してください。そうしないと、黙って失敗します。

アップデート

「このアプリケーションを実行するランタイムのバージョンが見つかりません。」というエラーに基づいて、アプリケーションがターゲットとするボックスに同じバージョンの .NET がインストールされていないことをお勧めします。上記の手順を使用して、インストールされているバージョンを確認しましたか?

こちらもご覧ください

.Net フレームワーク - 「このアプリケーションを実行するランタイムのバージョンが見つかりません」

于 2012-06-12T23:08:40.530 に答える