2013-04-03 4 views
6

Visual C++(特に2008年版)用の動的ランタイムライブラリは、現在Windows OSの一部ですか?私は、少なくともWindows 8では、アプリケーションでこれらを出荷する必要はなく、ユーザーがMicrosoftから再配布可能なパッケージをインストールする必要もないことに気付きました。現在、Visual C++の動的ランタイムライブラリはWindows OSの一部ですか?

これは本当ですか?もしそうなら、どのバージョンのWindowsとどのバージョンのVisual C++に対してこれが当てはまるのでしょうか?

+1

ところで、何もインストールせずに実行する必要がある小さなアプリケーションを配布する必要がある場合は、常に静的にCRTにリンクするオプションがあります。 –

+1

VC6 CRTについても同じことが言われました。将来のWindowsバージョンとの互換性を維持したい場合は、今日のルールに従ってください。マイクロソフトでは、刻々と変化する変更を導入する可能性がありますが、これらは主にベストプラクティスに従わなかったプログラムに影響します。 – MSalters

答えて

4

いいえ、それらはWindowsディストリビューションに含まれていません。それらを自分で展開することは難しい要件です。

それは確かにと思われるかもしれません。です。 system32ディレクトリ内のmsvcrt.dllから始まり、VS2002以前のVisual Studioバージョン(VS6以前)のC++ランタイムDLLと同じ名前を持ちます。ただし、Windowsの実行可能ファイルで使用されるCRTのプライベートコピーです。また、Windowsのファイルシステム保護機能により保護され、古いインストーラがオペレーティングシステムを破壊するのを防ぎます。

これは間違いなく動作することがよくあります。 多くのプログラムがMicrosoft CRTを必要とするため、DLLをインストールする前にユーザーがインストーラを実行している可能性は低いです。明らかに、その共通の事故に依存することはできません。

Windows 8と同様に、あらかじめインストールされているMicrosoft.VCLibs.110パッケージは、C++で書かれたStoreアプリケーションに必要なパッケージと一致します。しかしこれは上記と同じ理由で、Microsoft Storeのプログラムもあなたのものと同じようにVS2012で構築されました。今後のVS2013で起こることは、今やちょっと泥だらけです。すぐにわかります。

0

私の意見では、答えは両方のようになります。YesとNo

  • はい:最近のWindowsのOSは、一般的にVCに同梱されているが、より最近のバージョンと一緒に(プリインストールランタイム。ネットフレームワーク)。 MicrosoftがVSを一般公開(またはMSDNの購読者へ)する前に最新の/新しいVisual Studioを使用しているからです。この方法ではない場合、アプリケーション(レガシーアプリケーションまたはダウンロードされたアプリケーション)をインストールするたびに、セットアップによって必要なVC++ランタイムがインストールされます。別の方法は、自動更新によるものです。
  • いいえ:上記のルールが適用されない場合。または、VCランタイムが新しいサービスパックまたはパッチと共に出荷されたとき。より新しいパッチ/ SPを使用してアプリケーションを開発したことがあります。これはインストールする必要があります(もちろん、サイドバイサイドとして)。
関連する問題