これは、プロジェクト ファイルをハッキングしていくつかのファイルをコピーすることで実現できます。The example below is for using the Visual C++ 2012 Runtime libraries in Visual Studio 2013. 別のバージョンの Visual Studio を使用している場合、または別のバージョンの Visual C++ ランタイム ライブラリが必要な場合は、いくつかのバージョン番号を変更する必要があります。
まず、プロジェクト ファイルに次を追加します。
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Visual.C++.11.0.x64">
<Visible>False</Visible>
<ProductName>Visual C++ 2012 Runtime Libraries %28x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
上記の例は、Visual C++ 2012 ランタイム ライブラリの 64 ビット バージョン用です。32 ビット バージョンを使用する場合は、x64 を x86 に置き換える必要があります。また、別のバージョンの C++ ライブラリを使用する場合は、11.0 のバージョン番号を変更する必要があります。この時点でプロジェクトを開いて前提条件に進むと、Visual Studio 2013 が Visual C++ ランタイム ライブラリを見つけられないという警告が表示されます。これを修正するには、いくつかのファイルをコピーする必要があります。
- C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packagesフォルダーに移動します。別のバージョンの C++ ランタイム ライブラリが必要な場合は、v8.0a のバージョン番号を変更する必要があります。
- フォルダーvcredist_x86を、Visual Studio 2013 が使用するフォルダーC:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packagesにコピーします。2013 ライブラリを上書きしないように、必ず別の名前を使用してください。vcredist_x64.2012を使用しました。
この時点で、ソリューションを開いてソリューションを公開できます。ユーザーがアプリケーションをインストールすると、C++ ランタイム ライブラリもインストールするよう求められます。ユーザーがアプリケーションを既にインストールしている場合は、再インストールする必要があります。それ以外の場合は、C++ ランタイム ライブラリをインストールするように求められません。
システムにC:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\Bootstrapper\Packagesフォルダーがない可能性があります。Visual Studio 2013 以外に Visual Studio 2012 をインストールした場合にのみ、このフォルダーを取得できると思います。Visual Studio 2012 をインストールせずにファイルをダウンロードできる場所がわかっている場合は、この質問を自由に編集してください。