2009-04-03 10 views
5

Microsoftが新しいバージョンのVisual Studioをリリースするたびに、常にソリューションとプロジェクトファイルを「最新バージョン」に変換する必要があります。 「Hello World」ソリューションのような単純なものでも、変換ウィザードを実行する必要があります。オープンソースのVisual Studioプロジェクト配布のナイトメール

さらに、新しいビジュアルスタジオソリューションファイルは旧バージョンのビジュアルスタジオと互換性がありません。

グループの人々と仕事をしている人や、自分のプロジェクトのソースコードを配布したいと思っている人にとって、悪夢は何ですか?

ビジュアルスタジオプロジェクトを配布して、古いバージョンのビジュアルスタジオを使用している人が使用できるようにする良い方法はありますか?これはシンプルなCプログラムで、すてきなオプションは使用していません。私はVisual Studio 2008にしかアクセスできず、Visual Studioは後方に '変換'ウィザードを提供していません。プログラムをビルドするためにnmake + makefileを使ってソースコードをリリースするのは意味がありますか? nmakeのファイル形式は、しばらくの間大きく変わっていないようで、より広範囲のバージョンのVisual Studioで動作するmakefileを提供することが可能です。

答えて

2

簡単な答えはありません。私はしたかった。状況は、2005年以降、あなたはレッドパックにパックするか、ランタイムと静的にリンクする必要があるという事実だけでさらに悪化しています。そして、2008年静的リンクバイナリを以前の世代(2005年以前)のアプリケーションと話しているとすれば、何をするのかという手がかりはありません。 MSによると、これはうまくいくはずです。

すべてのユーザーにVisual Studioのコピーがあるとは限りませんか?そして、彼らはすべて同じバージョンを実行していますか? (私は知っています、エクスプレス版は今日は無料です...)あなたがこの経路を追求し続け、VS2008の同じバージョンを使用して周りの人にとってもっと楽にしてもらえるようにするには、難しさについてユーザーベースを教育する必要があります。

私はむしろmake/gccを使って公園を回るよりも使いたいです。

+0

さて、ソースコードとmakefileをリリースするのは難しいと思っています.1)VSの正しいバージョンが使用されている、2)VSがあります。さらに、実際のコンパイラは無料で、nmakeツールも同様です。 –

0

私はnmakeを使うのがいいと思います - 残念ながら、VC6はプロジェクトに基づいて自動的に作成する最後のバージョンです。

しかし、あなたのプロジェクトはかなりシンプルだと言いますが、これは大きな障壁ではありません。

5

CMakeをプロジェクトのビルドツールとして使用できます。それはあなたのためのVSプロジェクトファイルを生成し、あなたは単にファイルを開いて、それを使ってプロジェクトをビルドすることができます。変換の問題は重要ではありません。なぜなら、CMakeを使って再構築することができるからです。

この場合のCMakeのメリットは、移植性とバージョン独立性です(クロスプラットフォームのビルド機能ですが、それは関係ないかもしれません)。しかし、CMakeはそれに少し習熟していますが、プロジェクトファイルを使用するだけでは簡単ではありませんが、発生している問題を解決します。あなたのプロジェクトは比較的簡単なので、あなたのための解決策かもしれません。

9

これを行う通常の方法は、vsプロジェクトファイルをソリューションのサブディレクトリに配置することです。例えば

solution 
- build 
-- vc6 
-- vc7 
-- vc8 
-project1 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 
-project2 
-- src 
-- build 
--- vc6 
--- vc7 
--- vc8 

次にあなたが 対の新しいバージョンを取得する場合 - VC8 に最後のプロジェクトのディレクトリなどのVC7をコピーする - ソリューション のための同じを - 修正するために、テキストエディタでソリューションとプロジェクトファイルを開きますすべてのパス - ついに対の新しいバージョンでソリューションを開いて、それが プロジェクトを変換してみましょう - (使用のソースコントロール1またはあなたのパスが間違っているかのように、古いディレクトリにプロジェクトを更新)

これは面倒ですあなたは数年に一度それをしなければなりません。

これはこれまで行ってきた方法ですが、より良い方法があります。それはCMakeを使用してプロジェクトを生成することです。これは現在作業中に使用されており、単一のプロジェクト定義を使用してWindowsおよびUNIX上でネイティブに作業することができます。 Windowsでは、UNIX上でvsプロジェクトを使用しています。これはeclipseとmakefileを使用しています。また、CMakeは、コンパイラやリンカのフラグのような一般的なプロジェクト設定を抽象化することができるので、それらを一箇所で変更するだけで済みます。

私はマルチプラットフォームの機能を必要とするかどうかに関わらず、すべてのC++プロジェクトにCMakeを使用します。

0

オープンソースプロセスを使用することをお勧めします。 VS 2008としてコードをリリースし、以前のバージョンを使用しているユーザーがそのバージョンのソリューションファイルを提供できるようにします。オープンソースの方法です。

0

市販のWindowsライブラリで使用されているソリューションの1つは、VSバージョンの接尾辞(例:Project_VS2005.sln、Project_VS2008.slnなど)のソリューションファイルに名前を付けることです。それらを同期させておく必要がありますが、ファイルパスを変更したり、ディレクトリを組み込んだり、実際のソリューションファイルを変更したりする必要はありません。サポートされているVSバージョンごとに1つずつ、複数のファイルを保存するだけです。プロジェクトファイルでも同じことをする必要がありますが、複数のVSバージョンを同時にビルドする場合を除き、少なくとも異なるディレクトリ構造をサポートするためにコンテンツを変更する必要はありません。プロジェクトファイルごとに出力設定を変更するだけです。

それは素晴らしい解決策ではありませんが、まさに別の選択肢です。

関連する問題