none
ソリューションでドキュメントを管理したい(できるんだけど方法が) RRS feed

  • 質問

  • お世話になります。

    あるプロジェクトを作成したのですが、
    開発ドキュメントも管理したいと思い、
    同じソリューションに「新しいソリューションフォルダ」を作成して
    既存の項目の追加でファイルを追加しています。

    ・フォルダ毎追加できないのか?
    ・既存の項目の追加でファイルを追加すると、いちいちアプリケーションが起動される
    たとえば、*.docファイルを追加するとMS-WORDが起動し表示される。
    ・ソリューションエクスプローラにD&Dができないのか。

    もっと簡単に、ドキュメントを追加したいのですが、方法がありますでしょうか。

     

    VS2010を使用しております。

    • 編集済み Brillia 2012年1月30日 8:15
    2012年1月30日 8:11

回答

  • ご返事ありがとうございます。

    標準マクロでありそうです。

    AddDirAsSlnFolder — ディスク上のフォルダーをソリューション フォルダー構造にインポートします。

    ただ、ファイルが追加されるたびに、関連づいているアプリケーションで起動することを
    とめることは可能ですか?

    • 回答としてマーク Brillia 2012年2月1日 9:22
    2012年1月31日 1:34
  • また、ファイルが追加される度に関連づいているアプリケーションが起動するとのことでしたが、私の方では再現しませんでした。逆にどのようにすれば再現するのかわかりませんでした。

    ソリューションを右クリックするなどしてソリューションフォルダーを追加し、そのソリューションフォルダーに既存の項目を追加で Word ファイルなどを選べば再現するはずです。
    なお、手元で試す限り、プロジェクトに対して追加した場合やドラッグ&ドロップで追加した場合はこの挙動をしません。

    参考
    http://connect.microsoft.com/VisualStudio/feedback/details/247630/visual-studio-add-existing-item-opens-the-item-being-added#details

    これらの挙動を総合すると、1つずつ追加でかまわないならエクスプローラーからドラッグ&ドロップで追加するとか、空のプロジェクトを作ってそこにまとめて追加するってところかな。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2012年1月31日 13:57
    モデレータ
  • プロジェクト以下でも再現するかはわかりませんが、Visual Studio はファイルの削除を監視しています。
    削除されたことを検知した場合、プロジェクトツリーなどから自動的に消す(存在が消えたため、ツリーに存在する必要がないと判断する)挙動を示します。

    これと、Word/Excel の保存時の処理の相性が悪いのだと考えられます。
    過去のスレッド では Excel が保存時に一度削除して、リネームしてファイル保存を実現しているという情報がありました。おそらくは、同じような現象が起きていたのではないでしょうか。

    # プロジェクトだと検知されない理由はわかりませんが。


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

すべての返信

  • Windows のエクスプローラーから、登録したいファイルをソリューションフォルダにドラッグ&ドロップすると、そのファイルが登録されます。

    フォルダ単位に登録はできないようですね。

    マクロを使用して一括登録するか、ソリューションファイルは、技術者なら簡単に内容を判断できるような構造のテキストファイルなので、テキストとして編集してファイルを登録するなどの工夫で対応はできそうです。

     

    2012年1月30日 8:23
  • 標準のマクロサンプルにフォルダをソリューションに追加するやつがありませんでしたっけ?

    2012年1月30日 14:50
  • ご返事ありがとうございます。

    標準マクロでありそうです。

    AddDirAsSlnFolder — ディスク上のフォルダーをソリューション フォルダー構造にインポートします。

    ただ、ファイルが追加されるたびに、関連づいているアプリケーションで起動することを
    とめることは可能ですか?

    • 回答としてマーク Brillia 2012年2月1日 9:22
    2012年1月31日 1:34
  • ダミーのプロジェクトを作り、そこに保存するのではダメでしょうか? この場合だとフォルダごとドラッグ&ドロップできました。
    また、ファイルが追加される度に関連づいているアプリケーションが起動するとのことでしたが、私の方では再現しませんでした。逆にどのようにすれば再現するのかわかりませんでした。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2012年1月31日 5:59
    モデレータ
  • また、ファイルが追加される度に関連づいているアプリケーションが起動するとのことでしたが、私の方では再現しませんでした。逆にどのようにすれば再現するのかわかりませんでした。

    ソリューションを右クリックするなどしてソリューションフォルダーを追加し、そのソリューションフォルダーに既存の項目を追加で Word ファイルなどを選べば再現するはずです。
    なお、手元で試す限り、プロジェクトに対して追加した場合やドラッグ&ドロップで追加した場合はこの挙動をしません。

    参考
    http://connect.microsoft.com/VisualStudio/feedback/details/247630/visual-studio-add-existing-item-opens-the-item-being-added#details

    これらの挙動を総合すると、1つずつ追加でかまわないならエクスプローラーからドラッグ&ドロップで追加するとか、空のプロジェクトを作ってそこにまとめて追加するってところかな。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2012年1月31日 13:57
    モデレータ
  • 皆様、ご返事ありがとうございます。

    まず、ソリューションフォルダでのドキュメント管理は、絶対にやめたほうがいいです。

    私は、空のプロジェクトでのドキュメント管理をすることにしました。

    ソースコード管理には、TFS2010を使用しているのですが、理由はわかりませんが、
    どのタイミングなのかわかりませんが、勝手にソリューションをチェックアウトして、
    そしてソリューションから編集中のドキュメントが削除されていました。

    怖くなったので、チェックアウト時に「チェックアウト時に確認をする」を有効にして、対応していたのですが、
    それでも、どのタイミングかわかりませんが、チェックアウトしますかといきなり聞かれて、うっとうしくなりました。

    プロジェクトに移してからは、この現象はなくなりましたが、上記環境では、ソースコードからも削除されいたファイルがありました。
    最新の取得や、特定のバージョンの取得など試みたのですが、取得できませんでした。

    バックアップをとっていてよかったですが、「ソリューションフォルダ」は危険でした。

    私の環境だけの問題かもしれませんが、報告しておきます。

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

     

    2012年2月1日 9:21
  • プロジェクト以下でも再現するかはわかりませんが、Visual Studio はファイルの削除を監視しています。
    削除されたことを検知した場合、プロジェクトツリーなどから自動的に消す(存在が消えたため、ツリーに存在する必要がないと判断する)挙動を示します。

    これと、Word/Excel の保存時の処理の相性が悪いのだと考えられます。
    過去のスレッド では Excel が保存時に一度削除して、リネームしてファイル保存を実現しているという情報がありました。おそらくは、同じような現象が起きていたのではないでしょうか。

    # プロジェクトだと検知されない理由はわかりませんが。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク Brillia 2012年2月2日 0:28
    2012年2月1日 13:34
    モデレータ
  • ソリューションを右クリックするなどしてソリューションフォルダーを追加し、そのソリューションフォルダーに既存の項目を追加で Word ファイルなどを選べば再現するはずです。

    あ~、そういうことでしたか。試したところ、私の方でも再現しました。私はソリューションフォルダにWindowsのエクスプローラからドラッグ&ドロップして試しましたが、これだと再現しませんでした。

    ところで一つ思い付きました。プロジェクトのフォルダ内にドキュメント管理用のフォルダを作成して、そこに文書を入れます。このフォルダはVisual Studioには追加しません。このフォルダを開くために、例えばWSHを利用するVBScriptを記述し、それをVisual Studioのソリューションフォルダに追加します。このファイルを開く既定のアプリケーションをWScript.exeにします。
    私の方で試した結果、ソリューションフォルダに追加されたVBSファイルをダブルクリックするとWindowsのエクスプローラでそのドキュメント管理用のフォルダを開いてくれました。
    個人的にはこれでもいいのかな?と思います。というか、個人的には気に入りました。
    もっと良い方法があるかもしれませんが・・・


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 編集済み trapemiyaModerator 2012年2月2日 6:19 言い回しがおかしいところを修正
    2012年2月2日 2:48
    モデレータ