1

最新のMatlabはこれを自動的に行うと思いました。クリーンなWinXPVMで次のexeをテストしました。

namespace DotNetTest
{
    using System.Windows.Forms;

    class Program
    {
        static void Main(string[] args)
        {
            MessageBox.Show("Howdy!");
        }
    }
}

これらすべてがインストールされているコンピューターで実行すると、メッセージボックスとウィンドウが表示されます。クリーンなVMで実行すると、次のエラーが発生します。

Title: DotNetTest.exe - Application Error
Icon: Error
Buttons: {OK}
Message Body: The application failed to initialize properly (0xc0000135). Click on OK to terminate the application.

私はMSFTの天才にもっと期待しています。すべての.Netexeにわずかなオーバーヘッドが含まれていて、その最初のバイトで.Netがインストールされているかどうかを検出し、より適切なメッセージを表示することができないのはなぜですか。

これを修正するために反転できる設定はありますか?すべての設定は、新しいプロジェクトを作成したときにVS2010によって提供されたデフォルトの設定でした。

ありがとうございました。

4

2 に答える 2

3

これは、インストーラーを使用する目的です。.netでは、これは簡単です。プロジェクトを「公開」するだけで、.netがインストールされていることなどを確認するインストーラーを入手できます。アプリケーション自体はそれについて心配する必要はありません。

于 2010-06-02T18:25:18.097 に答える
2

Alexandr が言うように、これには実際にインストーラーを使用する必要があります。それが不可能な場合は、最初に実行するアンマネージド exe を記述してから、.net exe を開始するか、既にインストールされているかどうかに応じて、フレームワークをダウンロードするようにユーザーに指示する必要があります。

于 2010-06-02T18:27:09.880 に答える