4

自分の Win32 アプリケーションを EXE アプリケーションとしてデプロイして、他の人 (VC++ をインストールしていない人) が使用できるようにするにはどうすればよいですか?

Windows 7 で VC++ 2010 を使用しています。

4

3 に答える 3

7

完成したプログラムをコンパイルするときに (開発中にデバッグに使用する「デバッグ」ではなく) 「リリース」モードに切り替えると、Visual Studio がインストールされていないコンピューターで実行される実行可能ファイルを取得する必要があります。

ただし、その実行可能ファイルには、適切なバージョンの C ランタイム ライブラリをインストールする必要があります。たとえば、Visual C++ 2010 で開発した場合は、バージョン 10 の CRT がインストールされている必要があります。これは自由に再配布可能なライブラリで、ここからダウンロードできます。

したがって、展開にはいくつかのオプションがあります。

  1. 手動展開

    ベア実行可能ファイルを提供し、インストール メディアの別のフォルダーに再配布可能ファイルのインストーラーを含めます。実行可能ファイルをディスクにコピーしても、エラー メッセージが表示されて実行できない場合は、付属の再頒布可能インストーラーから CRT ライブラリをインストールする必要があります。その後、実行可能ファイルは問題なく実行されます。

    これは、コンピュータに比較的精通しているユーザーがいる場合や、特定の範囲のマシン (学校や企業全体など) に展開している場合に最適です。しかし、顧客への一般的な展開にはあまり適していません。

    実際、インストーラーさえ必要ありません。CRT DLL を実行可能ファイルと同じフォルダーに配置するだけで、正常に実行されます。これは、クリーンな VM で開発中のアプリをテストする方法です。それは魅力のように機能します。CRT インストーラーを実行する必要はまったくありません。これらの必要なライブラリは、Visual Studio のインストールの一部として見つかります。

    <Program Files folder>\Microsoft Visual Studio 10.0\VC\redist\x86
    
  2. 自動導入

    CRT 再頒布可能パッケージなど、必要なすべての依存関係と共にアプリケーションを自動的にインストールするセットアップ プログラムを作成します。これは、ほとんどの商用アプリケーションが行っていることです。最も些細なアプリ以外にはお勧めします。

    Visual Studio 2010 のフル バージョン (つまり、Express バージョンではない) では、アプリケーションのインストーラーとして機能するように必要に応じてカスタマイズできるセットアップ プロジェクトを作成できます。ただし、これはインストーラーを作成するための推奨される方法ではなくなり、この機能は最新バージョンの Visual Studio 2012 から削除されました

    そのため、セットアップ プロジェクトが利用可能な古いバージョンの VS を使用している場合でも、別のものを使用することをお勧めします。後で更新しなければならないものを作成するために時間を無駄にしても意味がありません。セットアップ プログラムを作成するための個人的なお気に入りの選択肢は、WiXInno Setupです。どちらも無料で、豊富なドキュメントがオンラインで入手できます。

    多くのことを行う必要のない単純なセットアップを作成するのは、非常に簡単です。CRT 再頒布可能パッケージがまだインストールされていない場合は、インストールするだけでよいため、これはおそらくあなたのケースです。WiX または Inno Setup でこれを行う方法については、オンラインでウォークスルーまたは例を見つけることができます。

    より複雑なことを行う必要がある場合は、これらのセットアップ パッケージの両方でサポートされています。それらは広範囲にカスタマイズ可能で非常に強力ですが、すべてを実行するにはさらに多くの作業が必要です.

  3. 静的リンク

    ダブルクリックするだけで動作することが保証されているベア実行可能ファイルを配布できるようにする必要がある場合は、必要なランタイム ライブラリに静的にリンクするようにプロジェクトを切り替える必要があります。これは、すべての CRT コードがリンカーによって実際に実行可能ファイルに直接埋め込まれていることを意味し、CRT ライブラリを個別に再配布する必要がないことを意味します。

    このアプローチの欠点は、CRT 用にリリースされた改善、バグ修正、およびセキュリティ パッチを利用するには、アプリケーションを再コンパイルして再配布するしかないことです。動的にリンクする場合(既定)、アプリは、インストールされている CRT ライブラリのバージョンに対する機能強化の恩恵を自動的に受けます。Microsoft は、静的リンクを使用しないことを強くお勧めます。

    Visual Studio でこれらのモードを切り替えるには、次の手順に従います。

    • ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。
    • ダイアログの上部にあるドロップダウン ボックスで [リリース] 構成が選択されていることを確認します。
    • TreeView の「C/C++」項目を展開し、「コード生成」を選択します。
    • 「ランタイム ライブラリ」オプションの設定を「マルチスレッド (/MT)」に変更します。

    これらの不可解なコンパイラ スイッチの意味と、いつ使用する必要があるかについての詳細な説明は、私の回答 here にあります

最後の注意: CRT ライブラリの「デバッグ」バージョンは再配布できませんが、アプリの「リリース」ビルドを常に配布する必要があり、「デバッグ」ビルドは配布しないため、問題ありません。

于 2013-04-19T02:49:10.723 に答える
1
  1. 一般に、EXE ファイルは、それをビルドした Windows の任意のバージョンまたはそれ以降のバージョンで実行される可能性が非常に高くなります。

    たとえば、 Windows 7 でVisual Studio 2012 Professional を使用してビルドし、それを Windows 95 で実行しようとすると、すべてがうまくいきません。しかし、それ以外の場合は、おそらく安全です :)

  2. 依存関係があるかどうかをテストする最善の方法は、「クリーン マシン」にインストールして実行することです。

    「クリーンなマシン」を取得 (および再利用) する最善の方法は、VM を使用することです。

    VMWareをお勧めします。しかし、Virtual BoxWindows Virtual PCも実行可能な選択肢です。

  3. インストーラーに関しては、 InnoSetupをご覧になることを強くお勧めします。

それが役立つことを願っています!

于 2013-04-18T23:33:05.173 に答える