none
デバッグ時のコマンド引数の保存先 RRS feed

  • 質問

  • プロジェクトのプロパティから変更しても、IDEを一旦終了させて再起動すると元に戻ってしまって困っています。

     

    Source Safe を使っているのでここへの登録ミスで、以前のバージョンが復活しているのでは?と疑っています。

    まず、IDE でデバッグする際のコマンド引数が、どこに保存されているのだろう、と思って*.slnや*.vcprojを覗いたのですが、それらしい文字列は見当たりません。

    一体、どこに保存されているのでしょうか?

     

    環境は、Win XP x64, VS 2005+VSS2005で、

    native C++ を開発しています。

    2007年4月18日 0:07

すべての返信

  •  KanPro さんからの引用
    プロジェクトのプロパティから変更しても、IDEを一旦終了させて再起動すると元に戻ってしまって困っています。

    これは、チェックアウトしっぱなしで一旦保存した状態の話でしょうか?
    であれば、

    Source Safe を使っているのでここへの登録ミスで、以前のバージョンが復活しているのでは?と疑っています。

    VSS を疑うのは誤りだと思います。

    コマンドライン引数は、普通に .vcproj ファイルに保存されるハズです。
    (CLR ならば、.user ファイルですが、native は .vbproj だったハズ)
    2007年4月18日 0:28
  •  じゃんぬねっと さんからの引用

    これは、チェックアウトしっぱなしで一旦保存した状態の話でしょうか?
    であれば、


    チェックアウトの有無が今回の問題と関係しているのかは、

    何度か検討したのですが、まだ判断できていません。


     じゃんぬねっと さんからの引用

    コマンドライン引数は、普通に .vcproj ファイルに保存されるハズです。

     

    やはり .vcproj に保存されているのですね。もう一度確認しています。

    (今は、作業マシンの前にいないので暫時ご猶予を...)

    2007年4月18日 4:08
  •  KanPro さんからの引用
    チェックアウトの有無が今回の問題と関係しているのかは、何度か検討したのですが、まだ判断できていません。

    ええ。チェックイン / チェックアウトをしない状態で、保存して変更点が適用されているかを確認してください。
    それで 「切り分け」 できますよね? という意味も含めて書いています。

    保存して Visual Studio を終了して、再度 Visual Studio を起動して確認できますよね。
    それで現象が再現せず、チェックアウト時に現象が再現した時に初めて、"VSS が疑わしい" という見方ができます。
    2007年4月18日 4:29
  • コマンド引数は、*.user ファイルに保存されていました。

    このファイルの変更日時を観察することで状況を把握できました。

     

    同一のsln の下に、VS で作ったプロジェクト(以下、a.vcproj)と、これを Intel Compiler 用に

    変換した a.icproj の両方を加えていました。

    構成マネージャーを使って、Solution 構成ごとに一方しかBuildされないようにしていたのですが、

    ここに落とし穴がありました。

    vcprojの方の引数設定を変更すると、メモリ上で設定が変わるのですがファイルには変更されません。

    (つまり、IDEを再立ち上げすると反映されなくなる)

     

    icprojも変更すると、初めて.userファイルが書き換わり、vcprojの場合も含めて引数の変更が

    保存されました。

     

    結局、Source Safe とは無関係でした。 

    同一 sln に 同一ソースの vcproj とicprojを入れるのは少々危険が伴うようです。

     

    .user ファイルにまで注意が届いていませんでしたが、じゃんぬねっとさんのお陰で気づくことが

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

     

     

    2007年4月19日 3:03
  •  KanPro さんからの引用
    .user ファイルにまで注意が届いていませんでしたが、じゃんぬねっとさんのお陰で気づくことができました。ありがとうございました。

    最初投稿で、

    > CLR ならば、.user ファイルですが、native は .vbproj だったハズ

    とは書いていましたが、native な C で .user ファイルなんて作成されましたっけ?
    (環境がないので記憶頼りなのですが)
    2007年4月19日 6:07
  •  じゃんぬねっと さんからの引用
     

    最初投稿で、

    > CLR ならば、.user ファイルですが、native は .vbproj だったハズ

    とは書いていましたが、native な C で .user ファイルなんて作成されましたっけ?
    (環境がないので記憶頼りなのですが)

     

    プロジェクト名+ユーザー名+ホスト名+.user

    という感じのファイルができていて、そこに保存されてました。

     

    もう帰宅してしまった上に、明日は出張ですので、

    来週まで正確な順番を報告することはできません。

    (申し訳ありません)

     

    なお、IDE終了後に立ち上げ直しすと、コマンド引数が元に

    戻っていた状況では、タイムスタンプのみが更新され中身は

    書き換わっていませんでした。

    そのため、差分を取ったり、文字列検索をかけても違いを

    発見することができませんでした。

    2007年4月19日 10:56
  • レスポンスが遅くて申し訳ありませんでした。

     

    プロジェクト名.vcproj.ユーザー名.ホスト名.user

    というファイルができて、そこにコマンド引数が保存されていました。

     

    このファイルが更新されれば、IDEを立ち上げ直しても、コマンド引数の

    変更が反映されていました。

     

    じゃんぬねっとさん、どうもありがとうございました。

     

    2007年4月23日 8:05