Webサイトとクラスライブラリを備えたソリューションがあります。また、VS2005およびVS2008で作業している開発者もいます。問題は、ユーザーがファイルを追加したり、クラスライブラリからファイルを削除したりすると、他のバージョンのユーザーのプロジェクトファイルに追加されないことです。 VS. また、1つのプロジェクトファイルを使用するように自動ビルドを設定する必要がありました。これを回避する方法はありますか、それとも全員を2008年にアップグレードする必要がありますか?
4 に答える
複数のプロジェクト メンバーのチームで 2 つの異なるバージョンの Visual Studio を使用することは、まったく意味がありません。Visual Studio 2005 にダウングレードするか、Visual Studio 2008 にアップグレードすることをお勧めします。同じマシンに複数のバージョンの Visual Studio を副作用なしでインストールできます。
各ソリューションファイルを同じVisualStudioバージョンに保持する必要があります。ただし、製品をいくつかのソリューションに分割してもかまいません。この場合、2005年のプロジェクトを保持する1つの.slnファイルと2008年のプロジェクトを保持する1つの.slnがある可能性があります。
前述のように、2005プロジェクトと2008プロジェクトの同期を自動的に維持する方法はありません。これは、一方のプロジェクトにファイルを追加すると、もう一方のプロジェクトにはその新しいファイルがないためです。同様に、ファイルを削除するとき。
たぶん、VS 2005にダウングレードする必要があります-私は現在VS08を使用するプロジェクトに取り組んでおり、参照されるdllのパスが混同され、dllが失われることがあります-または、ファイルについて説明したのと同じ問題がありますあるユーザーから追加されたものは、更新後の次のユーザーのプロジェクトファイルには含まれません。
「Web サイト」(「Web アプリケーション」ではなく) プロジェクトについてはよくわかりませんが、通常、2005 と 2008 で異なるプロジェクト ファイルは必要ありません。必要なのは、個別のソリューション ファイルだけです。
2008 年に 2005 年のプロジェクトを開いて、ソリューション/プロジェクトをアップグレードできるようにするだけです。CLR のバージョンを更新するように求めるダイアログが表示される場合がありますが、いいえと答えてください。
機能する 2008 ソリューションを取得したら、*.sln ファイルを別の名前にコピーし (私は自分のコピーを *.2005.sln と呼びます)、コピーした *.sln ファイルをメモ帳またはお気に入りのテキスト エディターで開きます。2 行目の「Format Version 10.0」を見つけて、「Format Version 9.0」に変更します。ファイルを保存します。
以上で、アップグレードしたソリューション ファイルは VS 2008 で動作し、コピーして変更したファイルは VS 2005 で動作します。
Web アプリケーション プロジェクトがある場合は、追加の手順が 1 つあります。Web アプリケーションの vbproj または csproj ファイルで、次の行を見つけます。
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="" />
その1行を次の2行に置き換えます。
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v8.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '8.0'" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplications.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" />
これらの 2 行は、使用されている VS のバージョンに応じて、条件付きで正しい MSBuild パスを選択します。