31

問題

Visual Studio 2012 を使用して C++ DLL を開発しています。一部のマシンでは、「v110」に設定されているプラ​​ットフォーム ツールセットが見つからないため、これらの DLL をロードできません。

古い C++ ランタイムをインストールしようとしました。「新しいバージョンが既にインストールされている」ため、インストールされませんでした。現在の Windows SDK もインストールしましたが、v110 以外に選択できる項目はまだありません。

質問

C++ DLL を古いバージョンの C++ ランタイムでコンパイルして、開発者以外のマシンで実行するにはどうすればよいですか?

プラットフォーム ツールセットは v110 です

4

4 に答える 4

23

MSDNのこのページによると、対応するバージョンのVisual Studio(2008または2010)、または「プラットフォームツールセット」ドロップダウンに関連するWindows SDKを使用して、これらのバージョンを一覧表示する必要があります。

ターゲットプラットフォームツールセットを変更するには、関連するバージョンのVisualStudioまたはWindowsPlatformSDKがインストールされている必要があります。

また、どのコンパイラ/リンカなどを制御する「プラットフォームツールセット」の間でも少し混乱しているようです。はアプリケーションのビルドに使用され、「VisualC++再頒布可能パッケージ」はアプリケーションの実行に必要です。ユーザーのPCに「プラットフォームツールセット」をインストールすることはできません。また、開発用PCに特定の「VisualC++再頒布可能パッケージ」をインストールして使用できるようにすることもできません。

また、私が知る限り、VisualC++再頒布可能パッケージにはMFCランタイムは含まれていません。これらは、個別のMSIマージモジュール(MSM)として利用できます。

于 2013-03-16T20:07:31.170 に答える
7

私が見つけた情報を共有したいと思います。

どうやら、静的リンクを使用するのは良いオプションです。私にとっては常にうまくいくとは限りませんでしたが、私の小さなプロジェクトでは、かなりうまくいきました。そして、結果は、など以外の依存関係のない DLLkernel32.dllです。

/MTリリース構成と/MTdデバッグに使用するだけで問題ありません。

ここでの問題は、私のような開発者が Visual Studio の最新バージョンをリリース直後に入手することですが、一般的なユーザーが数週間前のランタイムをインストールすることを実際に期待することはできません。また、古いランタイムを使用するためだけに異なるバージョンの Visual Studio をインストールすることは、間違いなく望ましくありません。

Visual Studio 2013 での静的リンク

于 2013-11-05T07:42:12.660 に答える
2

インターネットアーカイブのヒント。(上記のステートメントについてコメントすることはできません。理由はわかりません)

新しい Visual Studio (I testet 2013 および 2015) でv90 プラットフォーム ツールセット (=Visual Studio 2008)を使用するには、 Visual Studio 2008 とさらに Visual Studio 2010 をインストールする必要があります。 Visual Studio 2010 の一部。

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\x64\PlatformToolsetsv90 および v100 の場合

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0

V110 V120 および V140 用

Visual Studio のバージョンを表す: v90=2008、v100=2010、V110=2012、V120=2013、V140=2015。

インストール vob VS2010 の後、新しい Visual Studio 2013 および 2015 バージョンは、vs90 および vs100 プラットフォーム ツールセットを使用できます。(これは、Visual Studio 2013/2015 を新たにインストールしなくてもすぐに機能します。) Visual Studio 2012 は、VS2013 や VS2015 と同じように実行していると思います。

于 2016-08-25T11:53:11.897 に答える
1

それはあなたが構築しようとしているものに依存します。Windows SDK 7.1 をインストールすることで、一部の機能がサポートされる可能性があります。この投稿、同じ質問を参照してください。ただし、プロジェクトが MFC に依存している場合、残念ながらまったく不可能のように見えます。これは主に、VS2010 以外が MFC ライブラリをデプロイしているためです。

于 2013-03-16T20:02:11.087 に答える