none
プロジェクトのインポートについて RRS feed

  • 質問

  • (VisualStudio2008以降)

    1つのソリューション内にある複数のプロジェクトを、

    別のソリューションに、一括インポートを行えないかと模索しています。

     

    (例)

    aaa.slnは3つのプロジェクトを持つ。

    ・bbb.csproj

    ・ccc.csproj

    ・ddd.csproj

    このうち ccc.csproj と ddd.csproj を bbb.sln(新規作成)にインポートしたい。

     

    プロジェクト数が少ない場合は手作業で問題ないのですが、数が増えた場合に備えて、

    バッチ処理などで対応できないかと考察中です。

     

    インポート対象プロジェクトファイルパスが記述されたテキストファイルを読み込み、

    VisualStudioマクロのAddFromFileメソッドをループさせる方法も検討しましたが、

    何か、スマートではない(マクロ実行前にファイルの読み書きが必要)気がします。

     

    VisualStudioのソリューションに対して、指定された複数のプロジェクトを、

    バッチ処理的にインポートする方法について、何かアイデアをお持ちの方がおられたら、

    ご教示をお願いしたいと思います。よろしくお願いします。


    2011年8月28日 13:21

回答

すべての返信

  • AddExistingProject コマンドの使用を検討されてみてはいかがでしょうか?

    AddExistingProject コマンド
    http://msdn.microsoft.com/ja-jp/library/433zf5x0.aspx

    How to automatically add a huge set of .vcproj files to the solution?
    http://stackoverflow.com/questions/747687/how-to-automatically-add-a-huge-set-of-vcproj-files-to-the-solution

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク Zenpachi 2011年9月12日 16:13
    2011年8月29日 1:32
    モデレータ
  • TO trapemiya様

    返信、ありがとうございます。

    AddExistingProjectは、AddFromFileとは異なり、

    プロジェクトをソリューションに追加する際、ファイルをコピーせず、

    設定情報だけを追加するという挙動でした。

    2つのコマンドを臨機応変に使い分けて、

    より手間のかからないバッチ処理を構築しようと思います。

    ありがとうございました。

    2011年8月31日 11:12
  • AddExistingProjectは、AddFromFileとは異なり、
    プロジェクトをソリューションに追加する際、ファイルをコピーせず、
    設定情報だけを追加するという挙動でした。

    2つのコマンドを臨機応変に使い分けて、
    より手間のかからないバッチ処理を構築しようと思います。

    よくわからなかったのですが、「やりたかったことは実現できていない」のでしょうか?それとも、「実現できた」のでしょうか?

    実現できていないとした場合、やりたいことが伝わっていない可能性があります。
    その場合、「インポート」ってどういう風になることを期待しているのかから定義し直した方がよいのではないでしょうか。

    # この応答をみて、「インポートとはコピーを示す。そして、プロジェクトを追加することが目的ではなく、中身をクローンした新しいプロジェクトがほしい」と見えたため。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年8月31日 15:11
    モデレータ
  • TO Azulean様

    ご返信ありがとうございます。実現したいインポートの定義は、下記の2通りです。

    1:「指定された既存のプロジェクトを、新規作成したソリューションに対して、追加する」

    (ソリューションエクスプローラで既存のプロジェクトを追加するイメージ。)

    2:「新規作成したソリューションに対して、プロジェクトを1つ、新規作成する」

    (プロジェクトはコピーされる。コピー元は予め設定を行ったプロジェクト。コピー先は追加対象。)

    1は AddExistingProject で実現できました。

    2は AddFromFile で実現できました。

    説明不足で申し訳ありませんでした。

    ファイルの読み書きとループが必要ですが、やりたかったことは、実現できています。

    • 編集済み Zenpachi 2011年9月12日 16:13
    2011年9月12日 16:08