こんにちは。
マネージのC++をビルドして実行モジュールをVisual Studioがインストール
されていない他マシンで実行しようとした場合、「サイドバイサイド構成が正
しくないためが実行できません」とエラーになります。
MSからVisual Studioランタイムを落とし導入すると上手く動作しますが環境構
築の手順でVisual Studioランタイムを別途導入させたくありませんので可能で
あればビルド時に含めることができればと思っております。
ネイティブのC++の場合プロパティのどこかで設定をマルチスレッド(MT)とすれ
ばビルド時に含めることが出来ると伺ったのですがマネージのC++ではこの方法
は使用できないようです。
どなたか回避策をご存知の方教えていただけませんか?
ネイティブC++の場合は以下の設定で回避できました。
[プロジェクト]→[・・・のプロパティ]→[構成プロパティ]
→[C/C++][コード生成]→[ランタイム ライブラリ]を[マルチスレッド/MT]に変更
.NET Frameworkがインストールされてなきゃどっちみち動きませんよ? manageなら。
>επιστημηさん
アドバイスありがとうございます。
マシンはWindows Vistaなので.NET Framework3.5を導入済みです。
ビルドした環境の.NET Framework3.5と動作実行マシンの.NET Framework3.5
共にSP1の同じバージョンでした。
C++/CLIではstatic-linkできないんじゃなかったっけか。
# コンパイル・オプション:/clr は /MDを含意しているはず
>επιστημηさん
ありがとうございます。
>>C++/CLIではstatic-linkできないんじゃなかったっけか。
>># コンパイル・オプション:/clr は /MDを含意しているはず
上記だとするとビルド時に含めることが出来ないので別途ランタイム
を動作実行マシンに導入しなければならない手順が増えそうですね。
ありがとうございました。
Vista に標準搭載なのは 3.0 じゃないっすか?
まぁ、WindowsUpdate で入ってるのなら別ですけど。
ただコピーしてそのまま動いちゃうのはMFCを使用しない(Win32APIのみ)ネイティブ
C/C++の実行ファイルだけのような気がします。
セットアッププロジェクトを作ってインストーラを作成するのが通常の手順です。
何か理由があってそれができないのでしょうか。
OSのサービスパックを当てたところ標準でアプリ起動時に必要なdll群がインストール
されていました。ですので特にランタイムを別途導入することも必要なくなりました。
いろいろとアドバイスして頂きありがとうございました。