ソリューションファイル(SLN)をVisual Studio 2013で強制的に開く方法


102

VS 2013でVS 2012ソリューション(SLNファイル)を明示的に開こうとすると成功します。Windowsエクスプローラーでダブルクリックするだけで、VS 2012で開きます。

Visual Studio 2012はvs2010ソリューションを変換しませんか?」を読み、ソリューションファイルの「名前を付けて保存...」の提案に従いました。

それでも、VS 2012ではデフォルトで開きます。

私の質問:

SLNファイルを変更してVisual Studio 2013で強制的に開く方法

回答:


123

この.slnファイルは、意図したバージョンを初期の行の1つとして示してます-たとえば、

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

または:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

ただし、.slnファイルのデフォルトアプリケーションが「Microsoft Visual Studioバージョンセレクター」である場合にのみ、これを利用できます。デフォルトの.slnアプリケーションが特定のバージョンであるのは珍しいことではありません。Windows 8の場合:

ここに画像の説明を入力してください

「使い続ける」と書かれているので、どちらがデフォルトかわかります。

ここに画像の説明を入力してください

ここに画像の説明を入力してください


2
@UweKeimうーん; それは私の経験ではありません。バージョンセレクターをデフォルトとして、私にとって正しいバージョンのdevenvがslnファイルごとに読み込まれます-これらのソリューションをVS2013にロードした可能性はありますか?それらをアップグレードします
マークグラベル

2
さて、あなたの提案は私には十分すぎるほどです。VS 2012の暗いフォルダーアイコンと比較して、黄色のフォルダーアイコンが再び好きになりました!
Uwe Keim 2013年

2
@UweKeimあなたはSLNファイルで見れば、二行目は、IDEがで開くようにそれを伝えます:# Visual Studio 2013VS# Visual Studio 2012
マルクGravell

1
@UweKeim「値を認識しない場合、またはIDEがインストールされていない場合は、インストールされている最新のIDEを使用する」というフォールバックがあると思います
Marc Gravell

6
私にとって、デフォルトのランチャーは既に「Microsoft Visual Studioバージョンセレクター」に設定されていましたが、2012 ideのVisual Studio 2013で作成されたソリューションを起動していました。しかし、デフォルトとして「Microsoft Visual Studioバージョンセレクター」を再適用すると修正されました。現在、2012年は2012年にオープンし、2013年は2013年にオープンしています。(Windows 7 64ビットを使用しています)
Peter Flannery 2013年

35

コマンドラインを使用して、.slnファイルまたは.projファイルのアップグレードを強制することもできます。devenvはターゲットIDEのバージョンです。

devenv "MyProject.sln" /upgrade

例:

"%programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe" "D:\Source\MySolution.sln" /upgrade

これはVisual Studioを開かないことに注意してください。または、IDE内でソリューションファイルの[名前を付けて保存]を選択し、ソリューションを新しい名前で上書きまたは保存します。

続きを読む:http : //msdn.microsoft.com/en-us/library/w15a82ay.aspx


1
これは、スクリプト可能であり、ハッキングされていないためです。
CADが2015

2
残念ながら、この手法は常にソリューションファイルを更新するわけではありません。
Theophilus

の後、devenv "MyProject.sln" /upgrade.slnファイルも編集する必要があります。@ Zacのansを確認してください。
Wei Guo

22

OPにはすでに有効な答えがあるようですが、私にとっては問題は異なりました。私はVS 2012ソリューションを持っていて(実際にはいくつか)、それらを2013に変換したいと思っています(これは.slnファイルへのささいな変更であると理解していますが、知らない秘密のアップグレードロジックがあった場合に備えて自動的に実行したかったのです)。 。

だから私はそれをVS2013で開くと思った、それは期待どおりに自動的にアップグレードし、それからソリューションをダブルクリックしてVS2013でそれを見るように設定されるだろう。しかし、VS2013で開いても、ソリューションが期待どおりに自動的にアップグレードされず、VS2013でファイルを開いた後で、アップグレードを強制する明示的な方法が見つかりませんでした。ソリューションを操作して変更を保存し、VS2013を閉じることはできましたが、.slnは変更されず、アップグレードされません。

私の問題は、ソリューションを開く方法にあることがわかりました...習慣として、ファイルを右クリックし、[プログラムから開く]を選択して、ファイルを開くために使用するプログラムを選択します。私はこれを頻繁に行います。デフォルトの「プログラムから開く」プログラムを変更することについて話しているのではなく、特定のプログラムでファイルを1回開くことだけを話していることに注意してください。したがって、.slnファイルを右クリックしてVisual Studio 2013で開くと、何もアップグレードされません。

最終的に私はVS2013に移動し、次に[ファイル]> [開く]を実行して.slnファイルを選択することを考えました(これは私がこの方法で開くことはほとんどないので、おそらく同じことです)。とにかく、それはソリューションファイルを即座にアップグレードしました。

アップグレード後、.slnファイルの2〜3行目が次のように変更されました。

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012

これに:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.30501.0
MinimumVisualStudioVersion = 10.0.40219.1

したがって、私の経験から、VS2012 .slnをVS2013に自動的に更新するには、VS2013を開いて、[ファイル]> [開く]ダイアログから.slnを選択する必要があります。エクスプローラシェルを使用して.slnファイルをVS2013で強制的に開くと、アップグレードロジックは呼び出されません(どうやら)。

もう1つの注意点として、別のソリューションをテストしました。ConfigurationManagerで変更を加えた後(明らかに.slnファイルに「触れる」)、右クリックして[開く]で開いた後でも、VS2012をVS2013にアップグレードしました。


1
これはまさに私がやろうとしていたことです。Update 3があり、1つのプロジェクトが自動的に更新されましたが、他のプロジェクトはConfiguration Managerを開いたときにのみ変更されます。ヒントをありがとう!
エリカ

2
VS 2013内からvs 2012 .slnを開いても、アップグレードしませんでした。変だ。
PositiveGuy

4
アップグレードをトリガーするのはVS 2013でのソリューションの開始ではなく、アクティブな構成の設定の変更など、ソリューションを変更するアクションです。
bleater 2014年

vs2013からvs2015にアップグレードしてみましたが、うまくいきました。
Dingxin Xu 2016

7

以前に2010から2013に正常にアップグレードされたソリューションがありましたが、2010に関連付けられている.slnがまだ表示されていました。

このスレッドで提供されているすべてのメソッドをテストしました。.slnを正常に修正したのは、Visual Studio 2013だけを開き、2010に関連付けられているソリューションをIDEで開き、[ファイル]> [保存]を使用することだけでした。 (name).sln as]は、既存の.slnファイルを上書きします。

.slnのファイルassocを「Visual Studioバージョンセレクター」に設定しても変更は行われず、ソリューションは2010でも引き続き開きました。

devenv(name).sln / upgradeメソッドは、.slnファイルに変更を加えませんでした。

.slnファイルの生のテキストをハッキングすると、私のファイルが破損し、まったく開かなくなります。


乾杯ジェフ、私はちょうどあなたと同じ状況に遭遇します。以前のバージョンのVSとは異なり、マイクロソフトがVS 2013がそれに触れるものすべてをアップグレードしようとしないことを決定したのは素晴らしいことですが、通常それは逆です、そして私は私のVS IDEがお互いに.projと.slnファイルをアップグレードしないようにしようとしています:)
Simon

@SimonBrangwinは改善ですが、他の回答に従って/ upgradeを明示的に呼び出すと、要求されたアップグレードが実際に実行されることが期待されます。
stannius

ジェフありがとう!これは、2015でVS 2013 slnをデフォルトで開くようにアップグレードする唯一の方法です。また、ソリューションエクスプローラーを開いて、エクスプローラーツリーの上部にあるソリューションノードを手動で選択して「保存(名前).sln as 'Fileメニューのオプション。
ToastyMallows 2016年

6

この問題を解決するために、.slnファイルの次の行を変更しました。

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010

これらに:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013

コメント行は、ソリューションローダーによって解析されるときに変更されます。


4

これは、ソリューションファイルをVisual Studio 2015にアップグレードしようとしている読者に役立つ場合があります(VS 2012ソリューションをアップグレードしました)。

  1. VS 2015でソリューションを開きます。
  2. ソリューションに新しいプロジェクトを追加します。(テストプロジェクトを追加しました。)
  3. プロジェクトを削除します。
  4. ソリューションを保存します。

手順3では削除されなかったため、この時点で削除されたプロジェクトフォルダーを削除することをお勧めします。

これは、zumey 回答もTCCの回答もどちらも機能しなかった場合に役立ちました。

編集する

Metro Smurfにも似たような質問がありましたが、私よりも答えは似ていますが簡単です。彼のステップは:

  1. VS 2015のオープンソリューション
  2. ソリューションを右クリック>追加>新しいソリューションフォルダー(名前は関係ありません)
  3. ソリューションを保存
  4. 新しく追加されたソリューションフォルダーを削除する
  5. ソリューションを保存

プロジェクトの名前を変更し、後で元に戻しました。このようにすると、フォルダは作成されません
アンディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.