質問者
CD自動起動について

質問
すべての返信
-
たけちゃん さんからの引用 Visual Studio2005にてCD自動起動のマクロを作成した所、自分のパソコンでは動作するのですが、
他の人のパソコンで起動すると、
「このアプリケーションを実行するには、最初に以下の.NET FRAMEWORKバージョンの
いずれかをインストールする必要があります。V2.0.50727」
とメッセージが出ました。
.NET Framework 2.0 をつかったものだと、素のOSで動作できるのは、Vista のみとなります。
なので、古いOS(XPも含む)でもインストール作業を行うことなく、動作させたいのであれば、.NET Framework を一切使わずにつくる以外の選択肢はありません。
もちろん、MSVCR80.DLL などもスタティックリンクという形になります。
こうすることで、OSになにがインストールされているかに関わりなく動作させられるようになります。
実際、setup.exe などのソフトは全てそのように作られています。
-
NET Framework 2.0 をつかったものだと、素のOSで動作できるのは、Vista のみとなります。
なので、古いOS(XPも含む)でもインストール作業を行うことなく、動作させたいのであれば、.NET Framework を一切使わずにつくる以外の選択肢はありません。
→という事はVisual Studio2005で作成したEXEは古いパソコンで動作しないという事になりますね。
とっちゃんさん回答ありがとうございました。
.NET Framework を一切使わずにつくる以外の選択肢はありません
→Visual Studio2005で.NET Frameworkを一切使わずに作る方法というのはあるのですか?
実を言いますと、元々Visual Studio6.0のソースをVisual Studio2005にバージョンUPして
構築したのです。やはりStudio6.0の開発環境の中でプログラムを修正した方が良かったのでしょうか?
-
上の方も書かれていますが、C#などの.NET Frameworkを使ったアプリ(EXE)を
動かすためには、.NET Frameworkのインストールが必須です。
というわけで、.NET Frameworkのインストールを行うプログラムを、
C/C++で自作するか、何らかのランチャーを使うしかありません。
Microsoft Component Installer SDKを使ってみてはどうでしょうか。
■Microsoft Component Installer Software Development Kit for Windows (x86) Version 2.0
http://www.microsoft.com/downloads/details.aspx?FamilyID=2a5e4ebc-651c-40aa-9525-1810af47c317&DisplayLang=en -
VC6 時代と同様、C/C++ を利用し、/clr のスイッチはつけない、各種ランタイムライブラリはスタティックリンクするとすれば、特に問題はありません。
自前のブートストラッパーを持ってますけど、上記のような設定でビルドすることで、98/SE/ME/2000/XP/Vistaの素のOSでも動作するものを作れていますよ(UNICODEにしないこともわすれずにですがw)。
もちろん、一切のアップデートをかけずの状態で動くものです(ネットにすら繋がないでのテストですしw)。
.NET Framework を利用したいと言うことであれば、セットアッププロジェクトで必須コンポーネントに指定してインストーラを作るか、予めインストールしてもらうかと言うことになると思います。