none
VS2015からVS2017へのプロジェクト変換方法 RRS feed

  • 質問

  • VS2015で動作しているプロジェクト(.sln)をVS2017を起動しプロジェクトファイル(.solファイル)をドラッグドロップします。変換の画面が表示されOKに変換。

    その後ビルドを行い完了後、EXEを実行させ動作したのでプロジェクウトを終了。

    再度プロジェクトファイルをダブルクリックで起動するとVS2015が立ち上がり、かつソリューションエクスプローラには(利用不可)が表示される。

    正常にプロジェクト変換する方法をご教示いただけないでしょうか?

    なお、VSは2015、2017両方インストールされています。

    2019年6月28日 3:48

回答

  • 拡張子の関連付けは Visual Studio Version Selector になっているでしょうか? 以下の画像は Windows 10 の場合です。


    • 回答としてマーク stniwatori 2019年7月1日 5:27
    2019年7月1日 1:16
  • どのようにコンパイルを行いたいのか具体的な候補を挙げ尋ねましたが、それに対する答えが

    > プロジェクトファイルのダブルクリックにてvs2017が立ち上がり正常に展開され作業可能とする方法

    とのことであり、コンパイル方法は特に問わないと理解しました。

    SurferOnWwwさんが紹介されていますが、既定では.slnファイルはMicrosoft Visal Studio Version Selectorに関連付けられており、それを維持することをお勧めします。その上で、1度だけ次の操作を行ってください。

    1. Visual Studio 2017を立ち上げる
    2. 「プロジェクト/ソリューションを開く」から.slnを選択する
    3. ソリューションエクスプローラーのツリーのルート、.slnに相当する個所を選択する
    4. 「.slnを保存」を実行する

    この操作を行うと、Visual Studio 2017で開かれるよう、.slnファイルの先頭部分が更新されます。もちろん同様の手順で2015に戻せます。

    以降は.slnをダブルクリックするだけで、Microsoft Visal Studio Version Selectorは保存を行ったVisual Studioを立ち上げてくれます。

    • 回答としてマーク stniwatori 2019年7月1日 5:27
    2019年7月1日 3:29

すべての返信

  • Visual StudioおよびVisaul C++には種々の互換性があります。

    • .sln;ソリューションファイルはVisual Studio 2010以降は互換性があり変換不要です
    • .vcxproj;Visual C++プロジェクトファイルはVisual C++ 2010以降は互換性があり変換不要です
    • Visual Studio IDEとVisual C++ツールセットはある程度独立しています。基本的にVisual C++過去バージョンを呼び出すことができます
    • Visual C++ 2015 / 2017 / 2019はバイナリの上位互換があり、特にランタイムライブラリは統一されています

    …といった状況があり、質問者さんとして何を行いたいのかを明確にしてください。考えられる候補としては

    1. Visual Studio 2017を使用し、Visual C++ 2017ツールセットでコンパイルを行う
    2. Visual Studio 2015 / 2017を使用し、Visual C++ 2015ツールセットでコンパイルを行う

    辺りが考えられます。

    2019年6月28日 5:53
  • 質問が明確でなくてすみません。

    VS2015で作成してあるプロジェクトをVS2017で統一して使用し、開発することになりました。

    そのため以下の手順にて操作しました。

    1.VS2017を起動

    2.VS2015作成プロジェクトファイルをドラッグドロップ

    3.変換の画面が表示されたのでOKクリック

    4.全ソリューションのビルドを実行

    5.VS2017を閉じる

    6.プロジェクトファイルをダブルクリックにて起動するとvs2015が起動され、ソリューションエクスプローラ部に(利用不可)が表示され、開発作業ができない。

    ご教示いただきたいのは

    1.プロジェクトファイルのダブルクリックにてvs2017が立ち上がり正常に展開され作業可能とする方法。

    すみません。よろしくお願い致します。

    2019年7月1日 0:18
  • 拡張子の関連付けは Visual Studio Version Selector になっているでしょうか? 以下の画像は Windows 10 の場合です。


    • 回答としてマーク stniwatori 2019年7月1日 5:27
    2019年7月1日 1:16
  • 【追加情報】

    .sln ファイルにどのバージョンの Visual Studio を使うかの情報が含まれていて、エクスプローラーからアイコンを見れば分かるそうです。以下の記事の回答の画像参照。

    How exactly does “Visual Studio Version Selector” chooses a VS version?
    https://stackoverflow.com/questions/11042636/how-exactly-does-visual-studio-version-selector-chooses-a-vs-version/12352910

    確かに自分の環境でも、上の記事の画像の通り、アイコンは Visual Studio のバージョンを示していました。

    2019年7月1日 1:29
  • まず、ダブルクリックにこだわる理由が不明なので説明すべきかもしれません。
    なぜならご存知の通り、実行ファイルでないファイルをダブルクリックすることによって、意図した通りのアプリケーション(かつ意図したバージョンで)を立ち上げることは原理的に不可能だからですね。
    ファイルの拡張子で割り当てられているのは「既定のアプリ」なのであって操作者の意図するものとは限らないからです。

    一般に、ソリューションファイル(*.sln)は「Visual Studio Version Selector」に関連付けされています。
    このアプリケーションは*.slnファイルの中をを判定してそれに最適であると判断したVSを立ち上げるようですが、
    当たり前ですが、単なる便利機能なので操作者の意図したVSが立ち上がることは期待できないわけですね。
    どうしても立ち上げるアプリを固定したいのであれば、「コントロールパネル」の「既定のアプリ」の「ファイルの種類ごとに規定のアプリを選ぶ」から指定すべきかもしれません。
    2019年7月1日 1:45
  • ソリューションファイルは先頭に作成した、または最後にソリューションに変更を加えた Visual Studio のバージョンが書かれており、sln ファイルをダブルクリックした際はこのバージョンに基づいて選択されます。

    要は、VS2017 でソリューションに仮のソリューションフォルダーを追加して消して上書き保存するなど、何か変更を加えてやれば更新されます。

    2019年7月1日 3:27
    モデレータ
  • どのようにコンパイルを行いたいのか具体的な候補を挙げ尋ねましたが、それに対する答えが

    > プロジェクトファイルのダブルクリックにてvs2017が立ち上がり正常に展開され作業可能とする方法

    とのことであり、コンパイル方法は特に問わないと理解しました。

    SurferOnWwwさんが紹介されていますが、既定では.slnファイルはMicrosoft Visal Studio Version Selectorに関連付けられており、それを維持することをお勧めします。その上で、1度だけ次の操作を行ってください。

    1. Visual Studio 2017を立ち上げる
    2. 「プロジェクト/ソリューションを開く」から.slnを選択する
    3. ソリューションエクスプローラーのツリーのルート、.slnに相当する個所を選択する
    4. 「.slnを保存」を実行する

    この操作を行うと、Visual Studio 2017で開かれるよう、.slnファイルの先頭部分が更新されます。もちろん同様の手順で2015に戻せます。

    以降は.slnをダブルクリックするだけで、Microsoft Visal Studio Version Selectorは保存を行ったVisual Studioを立ち上げてくれます。

    • 回答としてマーク stniwatori 2019年7月1日 5:27
    2019年7月1日 3:29
  • 種々ご教示ありがとうございました。

    教えていただいた内容に従い進めてみます。

    2019年7月1日 5:41