質問

VC ++ 2010プロジェクトをVC ++ 2008プロジェクトと同期させたい。それも可能ですか?基本的に、VS2010のプロジェクトにファイルを追加/削除/名前変更する場合、対応するVS2008プロジェクトにファイルを追加/削除/名前変更したいと思います。プロジェクトオプションの同期も素晴らしいですが、必須ではありません。ソリューションレベルの同期も必要ありません。

編集:「結合」するよう提案されました。スクリプトまたはツールを使用して、チェックイン時またはビルド時にプロジェクトファイルを作成します。残念ながら、VC ++プロジェクトのファイル形式はVS2008からVS2010に変更されており、共通点はありません。私の質問は次のようなものです: vc9とvc10プロジェクトファイルをマージ/変換できるツールはありますか?これに対処する他の方法がない場合、独自のツールを作成する可能性があります。

役に立ちましたか?

解決

私の会社でもまったく同じ問題があり、 CMake

少なくともプロジェクトの1つで試してみてください。これは問題の理想的な解決策です。

テキストファイルで単純な構文を使用してプロジェクトを記述することができ、CMakeは同じファイルからVS2005、VS2008およびVS2010プロジェクトを生成します。
これにより、Cmakeファイルのみが変更され、すべてのプロジェクトが同時に更新されます。

短いCMake:
 1. clean
 2.記述的
 3.ネイティブ
 4.安全

理由:
 1.すべてのオプションと構成は、多くのプロパティパネルではなくファイルで読み取ることができます。
 2. CMakeの文法と構文は読みやすい。
 3.生成されたプロジェクトはすべて完了しており、CMakeから独立しています。
 4. CMakeファイルでソース管理マネージャーを使用できます。

50プロジェクトまたは20プロジェクトのソリューションがあり、多くの作業がありました。CMakeを使用した理由の1つは、VSで一般的なプロジェクトであるMacでXcodeを使用する必要があるためです。 Xcode。
しかし、VSの異なるバージョンだけでも価値があります。

他のヒント

Gallio OSS プロジェクトは、VS2010を使用して構築されていますが、ほとんどの貢献者はまだVS2008を使用しています。 *。csproj ファイルを *。vs2010.csproj ファイルと同期させるために、プロジェクトファイルのすべてのペアに対してWinMergeを実行する単純なPowerShellスクリプトを使用します。複雑なことはありませんが、非常に便利です。

Google Code 。実行するには、次のコマンドを入力するだけです:

@echo off
powershell "& './Compare VS2010 Projects.ps1' -sync %*"

お役に立てば幸いです。

ここでソース管理が役立ちます。以前のバージョンでは、アップグレードされた(VS2010)ブランチを作成し、ブランチとトランク(VS2008)の間で変更を前後にマージすることでこれを実行しました。確かにシームレスではありませんが、動作します。

VS2010でのプロジェクトの変更が以前よりも良くなるか悪くなるかはわかりません!

VS2008プロジェクトファイルをVS2010に移行するためのコマンドラインオプションだと思います。そのため、VS2008のみを保守し、VS2010プロジェクトを再生成するオプションがあります。欠点は

  • VS2010固有のプロジェクトオプションを入力できない
  • VS2010プロジェクトへの変更は上書きされ、VS20008にマージされません。

これらのソリューション/プロジェクトファイルは個別にのみ管理できます。アドオンを作成する場合はお知らせください!

2010は職場でインストールされていないので、ここではほとんどメモリからアクセスします。 2005年から2008年、2010年までのプロジェクトファイルスキーマの変更はほとんどありません。ほとんどの場合、WinDiffやBeyondCompareなどのテキスト比較ツールを使用して変更を強調表示し、一方のファイルから他方のファイルにコピーします。どの種類のWebプロジェクトも使用していませんが、ほとんどの場合、同じ手法が機能すると想定しています。基本的にXMLスキーマなので、XMLマッピングツールを使用して同じ作業を行うこともできます。

オープンソースプロジェクトを変換したときに、2010年はClickOnceプロジェクトの設定が実際には気に入らないことに気付きました。正常に変換されますが、その後プロジェクトを開くたびに再度変換するように求められます。停止するには、プロジェクトファイルからClickOnce情報を完全に削除する必要がありました。

編集: 私の経験は、主にC#プロジェクトスキーマに基づいています。 TheSamFrom1984が指摘したように、C ++スキーマには、バージョン10のMSDNドキュメントはまだです。

Visual Studio 2010はマルチターゲティングをサポートしています。これにより、VS2010を使用して開発し、プラットフォームツールをV9にダウンターゲットできるため、最新のツールを使用して古いプロジェクトを維持できます。なぜそうしないのですか?

VS2010およびVS2008 for C ++に付属しています。VS2005ツールチェーンの設定に関する情報があります

http://weblogs.asp.net/israelio/archive/2009/10/20/enable-vs-2010-multi-targeting-also-for-vs2005-c.aspx

VS 2008が発表されたときにこれを正確に行い、チームの他のメンバーがVS 2005を使用している間に評価していました。新しい形式のプロジェクトファイルをコミットすることはできませんでした。チームの残りのメンバーのために、すべての .vcproj ファイルを検索して _2008.vcproj に名前を変更する小さなスクリプトをrubyで作成しました。 .sln ファイルについても同じことを行いましたが、 sln ファイル内の .vcproj への参照も検索し、それを< code> _2008.vcproj を使用して、新しいプロジェクトを参照します。

次に、新しいソリューションファイルを読み込むだけで、移行ウィザードが処理を実行します(VS 2010には以前のバージョンと同様のものがあると思います)。これにより、両方のバージョンを並べて実行できます。チームの他の誰かが古いプロジェクトファイルに変更を加えた場合、単に変換を再実行すると、ウィザードは変更されたプロジェクトを移行するだけです。

スクリプトに追加する必要のある微調整があり、vcprojファイルの OutputDirectory および IntermediateDirectory フィールドを変更して、別のディレクトリも。そうすれば、同じソースツリーでどちらのバージョンのVisual Studioでもビルドできるはずです。

VS2010のコピーをブランチとして扱う必要があります。数日ごとに、大きな変更があれば(もちろん、保留中のテストに合格すると)、変更を他のブランチにマージします。これは、エンタープライズソフトウェア環境で広く採用され、受け入れられている慣行です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top