Visual Studio .NET 2008 ソリューションを Visual Studio .NET 2005 に変換するにはどうすればよいですか?
-
06-07-2019 - |
質問
ソリューションにはクラスのみが含まれており、それらのクラスはすべて .NET 2.0 仕様に従って記述されていると仮定します。そのソリューションを開いて変換し、Visual Studio 2008 で保存した場合、.SLN ファイルに最小限の変更を加えるだけで、後で Visual Studio 2005 でソリューションを再度開くことができますか?
どうやってそれを行うのでしょうか?
ソリューションに含まれるすべてのクラスがすでに .NET 2.0 仕様に従って記述されている場合、2008 年から 2005 年の .SLN ファイルを「ダウン コンバート」するツールはありますか?
解決
通常、.SLNファイルで行う必要があるのは、ファイルの上部にあるバージョン番号を変更することだけです。
CSプロジェクトファイルもほぼ問題なく、もしそうでない場合は、2005年と2008年の両方で問題ないように微調整することができます。
CSプロジェクトファイルの同じセットを共有する2つのソリューションファイル(05と08)でしばらく実行しました。
ただし、このような2つのバージョン間でVCプロジェクトファイルを共有できないことに注意してください。
プロジェクトファイルの「微調整」は次のとおりです。
VS2008で作成されたCSプロジェクトには次の行が含まれます。
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
VS2005はこれを抑制します。次のように変更する必要があります。
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
後者は2005年と2008年の両方で動作します。
他のヒント
&quot; fancy&quot;を使用していない場合2008年の機能、私の経験では、変更されるのは2か所のバージョン番号だけです。これは手動で編集できます(ファイルIIRCの上部にあります)。少なくとも試してみる価値はあります。 VS2008固有の機能(デザイナーなど)を使用している場合は動作しない可能性がありますが、単純なクラスライブラリの場合はこれを実行できました。
ここにコンバータがあります http://www.emmet-gray.com/ Articles / ProjectConverter.htm (VS 2010でも動作します)。
http://www.dsmyth.net/wiki/Downloads_VS2008ToVS2005Patcher.ashx
(リンクは現在壊れていますか?)。
この http://www.codeplex.com/Vs2008BackMigration も見つかりましたが、 tテストします。
はい、ソリューション ファイルを「ダウングレード」すれば可能です。
いいえ、私が知っているそのようなツールはありませんでした。調べてみました。
次の 3 つのオプションがあります。
- 2008 年にソリューション ファイルを開いていないため、アップグレードしない
- 同じファイルに対してクライアントのバージョンを混在させないでください。2005 を使い続けるか、全員がアップグレードしてください)
- 2005 と 2008 用に別々のソリューション ファイルを保持し、すべて同じプロジェクトが両方に存在することを確認します。
おかげで @ウィル・ディーン プロジェクト ファイルは実際に共有できることを思い出させてくれました。これらは 2008 エディタによって操作されますが、その後 2005 で開くことができることに注意してください。
これを試すことができます。 YMMV
http://www.emmet-gray.com/Articles/ProjectConverter.htm
数ヶ月前にJon Skeetsのブログに投稿されたことを覚えています。
直接的な方法はありません。試してみると大変な注文です。最も簡単な方法は、新しい2005プロジェクトを作成し、クラスを追加することです。
初心者向け:表示される違いは次のとおりです:
.csprojファイル:(これらはMSBuildスキーマに基づいています)
(編集)
- ToolsVersion
- ProductVersion
- ProjectVersion
(削除)
- OldToolsVersion
- TargetFramework
.slnファイル:(スキーマなし)
- フォーマットバージョン10.0
etc。