Visual Studio 2013 のビルドツールセットを拡充する プロフェッショナル編

Visual Studio Community 2013 について

11月12日に中堅、中小企業、個人開発、オープンソースで使用が可能になる Visual Studio Community 2013 が公開されました。Express 版の提供は 2013が最後になるという事です。Community Edition はProfessonal Edittion 相当という事で、このサイトでも今後は Community Edition を扱っていきます。

Visual Studio Community 2013 – Visual Studio
http://www.microsoft.com/ja-jp/dev/products/community.aspx

よそでは扱わない話題として、このサイトでは別のPCから VC++2005 、 VC++2008 、 VC++2010 のビルドルドツールセット を移植して マルチターゲット の開発環境を整える方法を解説します。

はじめに

過去の Visual Studio を使用せずに Windows SDK のみでビルドツールを用意したい方はこちらの記事の方をご覧ください。

ビルドツールセットを揃える事により、最新の Visual Studio を使いながら旧バージョンと同等の環境でビルドすることが出来るようになり、旧バージョンのVisual Studio が必要なコードも扱えるようになります。

なお、64bit OSでの作業を前提に記述してあるため、32bit OSを使用している方は、ディレクトリの場所などを適宜読み替えて下さい。

この記事は以下の項目から成り立っています。

  1. 豆知識
  2. 移植用の ビルドツールセット の用意
  3. 必要なリソースの抽出
  4. MSBuild 4.0 の準備
  5. 以前のバージョンのファイルの移植
  6. レジストリ情報や環境の補完
  7. マージモジュールのインストール
  8. コマンドラインでの使用

豆知識

MSBuild に関する情報源として参考になるような物が幾つかあります。特に気にしない人は読み飛ばしてください。

  • VS2005 (v8) ビルドツールセット の注意点
    MSBuild のバージョンは2.0 であり、Visual Studio 2013 ではサポートされていません。ただし、Visual C++ Team Blogに以下の投稿があり、Visual Studio 2013 でもツールセットとして使用することが出来る事が分かります。
    C++ Native Multi-Targeting – Visual C++ Team Blog – Site Home – MSDN Blogs
    http://blogs.msdn.com/b/vcblog/archive/2009/12/08/c-native-multi-targeting.aspx
  • VS2008 (v9) ビルドツールセット の注意点
    公式の情報源として以下のような物があります。
    旧バージョンの Visual C++ からのプロジェクトのアップグレード
    http://msdn.microsoft.com/ja-jp/library/vstudio/kyb7zzw4(v=vs.110).aspxVisual Studio 2012 で「Visual Studio 2008 – (v90)」のツールセットを指定すると、MSBuild で MSB8020エラーが発生する – Visual Studio サポート チーム blog – Site Home – MSDN Blogs
    http://blogs.msdn.com/b/jpvsblog/archive/2013/06/14/visual-studio-2012-visual-studio-2008-v90-msbuild-msb8020.aspxVisual Studio 2010 / 2013 が対応している MSBuild のバージョンは 4.0 以降になります。Visual Studio 2008 の MSBuild のバージョンは 3.5 ですが、 Visual Studio 2010 のインストール時に MSBuild 4.0 用の Visual Studio 2008 のビルドツールセットの設定ファイルを作成してくれます。また、Microsoft Windows SDK for Windows 7 and .NET Framework 4 をインストールしても Visual Studio 2008 / 2010 のインストールにかかわらず MSBuild のそれぞれの設定ファイルを作成してくれて、さらに Windows SDK 7.1 もインストールされるので、これを Visual Studio 2013 と合わせて使用する事がベストだと考えます。
  • チュートリアル: 複数のコンピューターを使用するビルド環境の作成
    http://msdn.microsoft.com/ja-jp/library/jj850211.aspx#copyingfile

移植用の ビルドツールセット の用意

専用の記事を用意したのでそちらをご覧ください。

必要なリソースの抽出

必要なリソースは Program Files 、Program Files (x86) 、に含まれています。通常の共有dll、ならびにデバッグ用共有dllはマージモジュールからインストーラー経由で導入する為 System ディレクトリ内のファイルのコピーは行いません。

以下に示すファイルを別のPCにバックアップします。ディレクトリ以下のファイルを示していない物はディレクトリ以下の全てのファイルをバックアップします。

[tvoncmeta {animated: “fast"} ]

    • Program Files
      • Microsoft SDKs
        • Windows
          • v6.0A
    • Program Files (x86)
      • Common Files
      • Microsoft SDKs
        • Windows
          • v6.0A
          • v7.0A
          • v5.0
      • Microsoft Visual Studio 8
        • Common7
          • IDE
            • msobj80.dll
            • mspdb80.dll
            • mspdbcore.dll
            • mspdbsrv.exe
          • Tools
            • makehm.exe
            • vcvars.txt
            • vsvars32.bat
        • VC
      • Microsoft Visual Studio 9.0
        • Common7
          • IDE
            • msobj80.dll
            • mspdb80.dll
            • mspdbcore.dll
            • mspdbsrv.exe
          • Tools
            • makehm.exe
            • vcvars.txt
            • vsvars32.bat
        • VC
      • Microsoft Visual Studio 10.0
        • Common7
          • IDE
            • PublicAssemblies
              • ja
                • Microsoft.VisualStudio.VCProjectEngine.xml
              • Microsoft.VisualStudio.VCProjectEngine.dll
            • msobj100.dll
            • mspdb100.dll
            • mspdbcore.dll
            • mspdbsrv.exe
          • Tools
            • 1041
              • vcupgradeui.dll
            • ProjectComponents
              • ja
                • Microsoft.VisualStudio.Project.Contracts.Implementation.resources.dll
                • Microsoft.VisualStudio.Project.Contracts.resources.dll
                • Microsoft.VisualStudio.Project.Framework.Implementation.resources.dll
                • Microsoft.VisualStudio.Project.Framework.resources.dll
                • Microsoft.VisualStudio.Project.Utilities.v10.0.resources.dll
                • Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.resources.dll
              • Microsoft.VisualStudio.ComponentModelHost.dll
              • Microsoft.VisualStudio.Project.Contracts.dll
              • Microsoft.VisualStudio.Project.Contracts.Implementation.dll
              • Microsoft.VisualStudio.Project.Framework.dll
              • Microsoft.VisualStudio.Project.Framework.Implementation.dll
              • Microsoft.VisualStudio.Project.Utilities.v10.0.dll
              • Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.dll
            • makehm.exe
            • Rules2BuildRules.xslt
            • Rules2Props.xslt
            • Rules2Targets.xslt
            • vcconvertengine.dll
            • vcupgrade.exe
            • vcupgrade.exe.config
            • VCVarsQueryRegistry.bat
            • vsvars32.bat
        • VC

[/tvoncmeta]

MSBuild 4.0 の準備

MSBuild 4.0 を準備するために Microsoft Windows SDK をインストールして行きます。以下の二つをインストールして下さい。

  • Download Microsoft .NET Framework 3.5 Service Pack 1 from Official Microsoft Download Center
    https://www.microsoft.com/ja-jp/download/details.aspx?id=22
    .
    NET Framework 2.0 ~ 3.5 の実行および開発を可能にします。必要に応じてインストールしましょう。
  • Download Microsoft Windows SDK for Windows 7 and .NET Framework 4 from Official Microsoft Download Center
    https://www.microsoft.com/en-us/download/details.aspx?id=8279
    Visual Studio 2010 に付属する VC++ のツールセット相当のコンパイラとライブラリがインストールされます。こちらも SDK v7.0A と ATL 、 MFC が付属しませんVisual Studio 2008  および Visual Studio 2010 用のツールセットの環境整備、及び MSBuild 4.0 の設定ファイルの導入を行ってくれます。

SDKは、特にツール等が必要でなければ必要最低限の物をインストールしましょう。

windows-sdk71-with-net4-setup-detail

また、入手可能なSDKに関しては以下のサポートのブログ記事が参考になります。

以前のバージョンのファイルの移植

続いて、バックアップを行ったファイル群をコピーします。重複ファイルがありますが、英語バージョンが日本語バージョンに置き換わるだけなので上書きして構いません。

copy-oldvs-to-vs2013pc

レジストリ情報や環境の補完

このままではレジストリや環境変数の設定が不足しています。

環境設定、レジストリ設定用のバッチファイルを用意したので、ダウンロードして管理者権限で実行して下さい。32bit/64bit兼用になっています。

Visual Studio 2005 のコンパイル環境は手動で MSBuild に追加する必要があります。設定ファイルを用意したのでダウンロードして Program Files (x86) の同ディレクトリへ解凍して下さい。

copy-fix-msbuild-for-vs2005

C#やVC++のプロジェクトを作成すると、ターゲットフレームワークやプラットフォームツールセットが増えている事が見て取れると思います。

マージモジュールのインストール

最後にマージモジュールのインストールを行います。これを行わないと VS2005とVS2008のツールセットでビルドした実行ファイルが実行できません。以下のように表示されてしまいます。

side-by-side-assemble-error

ビルドツールセットの準備で用意したセットアッププログラムを順次実行して行きましょう。

setup-vsdlls-setup

通常の再配布パッケージは Microsoft のダウンロードセンターからダウンロードしてセットアップできますが、Debugバージョンのdllに関しては再配布が認められていないため、この手法でセットアップするしかありません。dll Hellに陥らないためにも手動によるコピーは慎みましょう。

exec-vs2005-mfc-program

使用中のdllの更新の為、再起動が必要になりますが vs2005 で作成した MFC のプロジェクトを vs2005 のツールセットでビルドした実行ファイルが起動しています。

コマンドラインでの使用

各Visual Studio のVCフォルダ内のvcarsall.batを実行する事で MSBuild を使わないコマンドプロンプトからの利用も可能です。

Windows SDK のバージョンの調整は別途必要ですが、これだけの数のコンパイラが一つの環境に整うのは壮観です。

visual-compilers