言語・開発環境

Visual Studio.NETによるセットアッププロジェクト

一般

Visual StudioでVC++を使うときの一般的インクルード設定

  • パッと見、プロジェクトのプロパティなどから見る方法がない?ようなので
    C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\ATLMFC\INCLUDE;
    C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\INCLUDE;
    C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\include\prerelease;
    C:\Program Files\Microsoft Visual Studio .NET 2003\VC7\PlatformSDK\include;
    C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include;
    C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\
    上記は2003の場合

デバッグ時に「呼出し履歴」ウィンドウを使いましょうという件

  • 「呼出し履歴」=スタックトレースのウインドウを使いこなせてない(というか存在すら知らない)人が案外多い
  • これが使えるかどうかで開発効率に大きく差が出ますのでぜひ覚えるべき
  • 「デバッグ」-「ウィンドウ」-「呼び出し履歴」で表示できます
  • ショートカットはCtrl+D→C
  • Assertなどでデバッガ内で止まったときに、どこから呼び出されてそこに来たのかを知ることができる。
  • 呼び出し元のメソッドのソース該当位置に遡ってジャンプできます。また、下へ戻ってくることもできます。
  • またその時点での各メソッド内での変数の値なども殆どの場合見られます
  • デバッグ実行中でないと使う意味が無いので注意

ContextSwitchDeadlock問題

  • VS 2005でデバッグ中に以下のような例外が出る件
    ContextSwitchDeadlock が検出されました。
    Message: CLR は、COM コンテキスト 0x1b19d8 から COM コンテキスト 0x1b1b48 へ 60 秒で移行できませんでした。
    ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、
    Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、
    パフォーマンスを低下させたり、アプリケーションが応答していない状態および増え続けるメモリ使用を導く
    可能性があります。この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、
    CoWaitForMultipleHandles のようなポンプする待機プリミティブを使用するか、長い実行操作中に定期的に
    メッセージをポンプしなければなりません。
  • 設定で対応するには「デバッグ」−「例外」で出る一覧から「ContextSwitchDeadlock」をオフにする
  • 参考:http://msdn2.microsoft.com/ja-jp/library/ms172233(VS.80).aspx

HxS(Microsoft Compiled Help2)ファイルの使い方

  • Visual Studio .NET 連結ヘルプ コレクション マネージャを使って、Visual Studio.NETのヘルプコレクションに含めることによって使えるようになる
  • 具体的には以下のようにする
    • ヘルプもしくはIEから ms-help://MS.VSCC.2003/vscccommon/cm/CollectionManager.htm を開く
    • VS.NET 2005の場合は ms-help://MS.VSCC.v80/dv_vscccommon/local/CollectionManager.htm
    • そこに含められるヘルプの選択肢が出ているはずなのでチェックし、更新を行う。
    • 以後、通常のヘルプと同じように使えるようになるはず
  • 参照:http://www.sssg.org/blogs/naganuma/?p=554 その2

XML Commentの利用方法

リソースを埋め込んだ時の注意点

  • リソースとしてテキストファイルを埋め込んだときに、テキストファイルの中身を書き換えても通常の「ビルド」では変更が反映されないことがある模様。リソースで埋め込んだテキストファイルの中身を書き換えた場合必ず「リビルド」した方が良い

WindowsサービスをVisual Studio .NETでデバッグする方法

.NETによるWindowsサービスの開発メモ

MDM.EXEとは?

プロジェクトをソリューションに追加してもソースセーフの管理化に入らないとき

  • 「ファイル」−「ソース管理」−「ソース管理の変更」で出てくるダイアログを開く
  • 管理に入れたいプロジェクトをカレントにあわせてから、ダイアログ上方にある「バインド」というボタンを押すとソース管理化に入れて貰える。
  • ソース管理化から外したい場合は逆に「バインド解除」ボタンで解除できる。

ソリューションでビルドするときに「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」というエラーになる問題

Visual Studio.NETのインストールで謎のエラーが出た

  • 某サーバにインストールしたらこのようなエラーとなった
    MSI (s) (44:40) [11:18:43:796]: 製品: Visual Studio .NET Enterprise Developer 2003 
    - Japanese -- インストールに失敗しました。
    MSI (s) (44:40) [11:18:43:859]: MainEngineThread is returning 1639
    情報 1639 です。コマンド ラインの引数が無効です。コマンド ラインのヘルプの詳細については、
    Windows Installer SDK を参照してください。
    R"US
    MSI (c) (38:C8) [11:18:43:859]: Decrementing counter to disable shutdown. 
    If counter >= 0, shutdown will be denied.  Counter after decrement: -1
    MSI (c) (38:C8) [11:18:43:859]: MainEngineThread is returning 1639
  • 原因はOSインストール時に登録した組織名に "R"USと言う風にダブルクォーテーションを入れていたため。
  • 組織名は一回入れてしまうと画面から変更できない模様。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion の内容を書き換え、ダブルクォーテーションを取り除くとエラーが出なくなる。

VisualStudio.NETでSourceSafeの設定を削除する方法

  • 以下の話はもしかして「ファイル」−「ソース管理」−「ソース管理の変更」でバインド解除すればいいだけの話かも知れないが、あえて手でやりたい場合のため
  • ソリューションファイルから以下の部分(GlobalSection(SourceCodeControl)〜EndGlobalSection)を削除する。
    Global
     GlobalSection(SourceCodeControl) = preSolution
       SccNumberOfProjects = 3
       SccLocalPath0 = .
       CanCheckoutShared = false
       ...
       SccProjectFilePathRelativizedFromConnection2 = AAA\\
     EndGlobalSection
     GlobalSection(SolutionConfiguration) = preSolution
     ...
  • プロジェクトファイルから以下の部分(SccXXX)を削除する
    <?xml version="1.0" encoding="shift_jis"?>
    <VisualStudioProject
     ProjectType="Visual C++"
     ...
     SccProjectName=";$/XXX.root/YYY;, CAAAAAAA"
     SccAuxPath=""
     SccLocalPath="..\..\.."
     ...
  • 参考URL

.NET 2003でエディションの違いによって何ができて何ができないかの一覧


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-11-14 (金) 22:27:07 (9d)