.NET Framework 4.5、または、4.5.1 がインストールされた環境での VS2010 セットアッププロジェクトの動作について

 

こんにちは。Visual Studio サポート チームです。

.NET Framework 4.5以降 (※1) のランタイムがインストールされた環境で、Visual Studio 2010のセットアッププロジェクトにVisual C++ Win32、MFCなどのアンマネージ アプリケーションをプロジェクト出力として追加すると、.NET Framework を使用していない場合でも依存関係が生成される動作となります。

.NET Framework 4.5 をインストールしたり、Visual Studio 2012 または Visual Studio 2013 と Visual Studio 2010 を合わせてインストールしている環境、また、Windows8 以降のバージョンの OS でVisual Studio 2010 SP1をご使用の場合、.NET Framework 4.5 以降のバージョンがインストールされた環境となります。

そのような環境で、Visual Studio 2010のセットアッププロジェクトを使用する際には、ビルド時に依存関係をご確認ください。

この依存関係の設定は、Visual Studio 2010 がビルドを行う際には、.NET Framework 4.5のインストーラーに含まれる構成ファイルを使用しており、この構成ファイル内で .NET Framework との依存関係に関する設定が記載されていることにより追加されます。

その結果、Visual C++ で作成されたアプリケーションでも、ソリューションエクスプローラー内の[見つかった依存関係] に「Microsoft .NET Framework」が追加されます。

また、[起動条件エディター] の [起動条件] に「.NET Framework」が追加され、アプリケーションのインストール時に .NET Framework をインストールするよう設定されます。

たとえば、以下のように表示されます。

[見つかった依存関係] では、以下のように表示されます。 NET45Dependency01

[起動条件エディター] の [起動条件]では、以下のように表示されます。 NET45Dependency02

この依存関係の設定は、以下の方法で変更することができます。

 

方法 : セットアッププロジェクトに追加された .NET Framework の依存関係を削除する

--------------------------------------------------------------------------------------

Visual C++ などアンマネージ アプリケーションのみを含むセットアップ プロジェクトにおいても、.NET Framework が [見つかった依存関係] に追加され、起動条件に追加された状態でパッケージを作成すると、インストール実行時に、ブートストラップとして .NET Framework のチェックやインストールを実施します。

インストールするアプリケーションは .NET Framework に依存しておらず、これらの .NET Framework のチェックやインストールが不要な場合に処理を行わないようにするためには、プロジェクトファイル(.vcxproj file) を以下のように編集します。

◆手順

1. アプリケーションのプロジェクトファイル(.vcxproj file) を Visual Studio などの xml エディタやテキストエディタで開き、以下のように編集します。

"ItemGroup" タグの開始前に、以下の要素を追加します。

<PropertyGroup>

  <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>

</PropertyGroup>

追加したプロジェクトファイルの例は、以下のとおりです。

<?xml version="1.0" encoding="utf-8"?>

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>

  <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>

</PropertyGroup>

<ItemGroup Label="ProjectConfigurations">

(以下、省略)

2. 編集したアプリケーションのプロジェクトファイルを保存し、Visual Studio 2010 で再度読み込みます。

3. ソリューション エクスプローラー上のセットアッププロジェクトの [見つかった依存関係] を右クリックし、[依存関係の更新] をクリックします。[見つかった依存関係] から「Microsoft .NET Framework」が削除されていることを確認します。

4. [起動条件エディター] の[起動条件] から、”.NET Framework” の条件を手動で削除します。

 

この動作については 以下の技術情報 (英語版) でもご案内しておりますので、あわせてご参照ください (※2)。

VS 2010 setup projects depend on .NET after installing .NET 4.5

https://support.microsoft.com/kb/2735477

 

 

※1 記事作成時点ではバージョン 4.5/4.5.1/4.5.2 がリリースされています。また、4.5.1は Windows Updateからも 配信されています。

※2 上記技術情報は、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。そのため、内容に関して改定される場合があります。

"緊急公開" の資料についての詳細は、上記技術情報の “More information” の項をご参照ください。