項目 - 既存のC++ソースコードをVisual Studioにインポートする




visual studio 既存プロジェクト 追加 (5)

私はいくつかの特定のMSツールを利用するために、既存のC ++アプリケーションのソースをVisual Studioにインポートしようとしています。 しかし、オンラインで検索してビジュアルスタジオで遊んだ後は、既存のC ++ソースコードをビジュアルスタジオにインポートして構造的に元の状態に保つことは容易ではありません。

私が見つけたインポート能力は、ディレクトリを平らにし、すべてを1つのプロジェクトに入れます。 何か不足していますか?

(これはすべてアンマネージドC ++であり、win / unix用の特定のビルドを含んでいます)


「ソリューションエクスプローラ」では、「すべてのファイルを表示」ボタンをクリックすると、ファイルシステム上に存在するファイル(ディレクトリおよびすべて)をVisual Studioに表示させることができます。

私の意見では、これは不完全な回避策ですが、私はそれが最高のものだと信じています。 私は、プラグイン、マクロ、またはファイルシステムをミラーリングするフォルダを持つ実際のプロジェクトにディレクトリをインポートするツールを知らない。


プロジェクト/ソリューションがロードされていない状態で、Visual Studio 2005に次のメニュー項目が表示されます。

ファイル>既存のコードからの新規プロジェクト...

ウィザードの後に​​、私の問題は解決されました!

"すべてのファイルを表示"ボタンを押すと、ディレクトリ内のすべてのディレクトリとファイルを含む完全な階層が表示されます。

既存のコードから新規プロジェクト...オプションが利用できない場合は、[ツール]> [カスタマイズ]で追加する必要があります。


新しい空のソリューションを作成し、ソースコードを追加します。

例えば、

ファイル>新規>プロジェクト... Visual C ++> Win32> Win32コンソールアプリケーションアプリケーション設定> - "プリコンパイル済みヘッダー"のチェックを外します - "プロジェクトを空にする"

プロジェクトが作成されます。 既存のコードを追加するには:

プロジェクト>既存アイテムを追加...> - 追加するファイルを選択

再コンパイル、完了!


私はこの質問は既に正しいとマークされていることを知っていますが、私は "ファイル" - > "既存のコードから新しいプロジェクト"を行うことによってVisual Studio 2008でプロジェクトに既存のコードをインポートすることができました。 私のコードのディレクトリ構造は保持されました。


私は指定された制約の下で、ソースツリーから多くのプロジェクトを作成しなければならないという一般的な解決策を認識していません。

私が見る最良の選択肢は実際にはいくつかのスクリプトでプロジェクトファイルを作成することです。

  • 手動で単一のプロジェクトを作成する(空のプロジェクトを作成してからファイルを追加する)
  • できるだけ近くに設定してください(つまり、プリコンパイルされたヘッダ、ビルド設定などで)
  • 作成するプロジェクトファイルにスケルトンとして作成された.vcprojを使用します。

非常に単純な方法は、 "strange tokens"を使ってリストやプロジェクト名などをファイルし、それらをジェネレータで埋めることです。 あなたがいい人になりたいなら、もちろんXML処理ライブラリを使うことができます。

私たちの経験:実際には.vcprojと.slnをリポジトリ(git)にもう保存しませんが、ソースツリーからそれらを再生成するPythonスクリプトを、VS 2008の "プロパティシートテンプレート"(またはそれらのもの呼び出されます)。 これは多くの一般的な調整に役立ちます。

プロジェクト生成スクリプトには、すべてのプロジェクトの専門分野に関する情報が含まれています(たとえば、MFC / ATLを使用するか、DLLまたはEXEを作成するか、除外するかなど)。

また、このスクリプトには依存関係が含まれており、実際のビルドスクリプトを提供します。

これはかなりうまくいっています。問題は軽微です。ビルドシステムではPythonが必要ですが、プロジェクトファイルを再作成するのを忘れずに、いくつかのプロジェクトを調整するためにPythonを学ばなければなりません。

@Michael Burr "Pythonスクリプトはどれくらい複雑で、サポートする 'テンプレート'が必要なのでしょうか?

私は正直なところ、別の開発者(Pythonを選んだ人)にそのタスクを渡したので、わかりません。 オリジナルのタスクは、VS2008ソリューションのビルドが私たちのニーズに十分ではなく、古いバッチファイルが並列化をサポートしていないため、ビルドスクリプトを提供することでした。 .vcproj生成は後で追加されました。 彼のスクリプトが最初から.vcprojと.slnファイルを生成することを理解しているが、すべての設定を別のプロパティシートから取得している。

長所:

  • オンザフライで新しい設定を追加する。 いくつかのプロジェクトにはすでに6つの構成があり、ユニコードサポートを計画するとしばらくの間倍増を検討していました。 いくつかの厄介なツールがまだMBCSとして構築されているので、いくつかのlibsには8つの設定があります。 それを手で設定するのは苦痛です。今はもう気にしません。

  • グローバルな変更。たとえば、相対プロジェクトのパス、一時ファイルのフォルダ、最終的なバイナリの移動など、私たちが満足していたソリューションが見つかるまで

  • ビルドの安定性。 VC6プロジェクトファイルをマージすることは、様々な理由から、エラーの顕著な原因であり、VC9プロジェクトファイルは良く見えませんでした。 今、物事は分離されているように見える:プロパティシートの設定をコンパイル/リンクし、スクリプトでファイルを処理する。 また、スクリプトは主にデフォルトからのバリエーションをリストし、プロジェクトファイルより読みやすくなりました。

一般的には、あなたのプロジェクトがすでに設定されていて、かなり安定していて、あなたに本当の問題がないとき、私は大きな利益を見ません。 しかし、 未知のもの (私たちにとって:VC6 - > VC9およびUnicodeビルドのほとんど)に移動するとき、柔軟性は実験のリスクを大幅に減少させました。







visual-studio-2010