none
pdbファイルの出力先を変更できるか RRS feed

  • 質問

  • ■事象
    VisualStudio2017にてデバックモードで開発したWindowsFormからCrystalReportsの機能を実行しようとすると、Dドライブにファイル出力をしようとする。
    気が付いた経緯はAssetViewという外部メディアのファイル書き込みを検知するツールにて検知されたため。
    (DドライブはDVDドライブであり、出力しようとするファイルがDドライブ指定だったため、検知したと考えられる)

    出力しようとするファイルは以下3ファイル(いずれもpdbファイル)
    a.d:¥crew¥win32_x86¥release¥bin¥crystalreports.sdk.dotne¥dotnet3¥CrystalDecisions.Shared.pdb

    b.d:¥crew¥win32_x86¥release¥bin¥crystalreports.sdk.dotne¥dotnet3¥CrystalDecisions.ReportAppServer.DatasetConversion.pdb

    c.d:¥crew¥win32_x86¥release¥bin¥crystalreports.sdk.dotne¥dotnet3¥CrystalDecisions.ReportSource.pdb

    ■質問事項
     1.pdbファイルの出力先を変更することが可能か。
     2.変更不可の場合は出力させないように抑止する方法はあるか。


    以下、附帯情報
    ■ファイル出力タイミング
    上記a:CrystalReports機能を実行するソースコード実行時(モジュール呼び出し時)
    上記b:CrystalDecisions.VSDesigner.CodeGen.ReportCodeGeneratorオブジェクト生成時
    上記c:DataSetをレポートに登録するタイミング(コード例:csReport.SetDataset(ds))

    ■開発環境
    OS:Windows10 64bit
    開発言語:VisualStudioProfessional2017 VisualBasic
    CrystalReports:2016SP6、CrystalReportsRuntime CRForVS_redit_install_32bit_10_0_23

    ■VisualStudioの設定
    CPU指定:x86 MSOffice連携があり、32bitアプリケーションである必要があるため
    参照設定:
     CrystalDecisions.CrystalReports.Engine
     CrystalDecisions.ReportSource
     CrystalDecisions.Shared

     上記参照設定はいずれもC:¥windows¥assembly¥GAC_MSIL 以下のものを参照

    ■その他
     ・VisualStudio2010 SP1,CrystalReports2013の組み合わせで開発していたモジュールをマイグレーションしようとした際に当事象が発生。AssetViewはVisualStudio2010の旧環境でも使用していたが検知はされていなかった。
     ・CrystalReportsの古いランタイム(旧環境で使用していたもの)をVisualStudio2017で参照設定に加えた場合でも同様に検知をする。

     
    • 編集済み Lots_Mei 2018年11月22日 2:06
    2018年11月22日 1:22

回答

  • AssetViewクライアントのバージョンを10.4.1にあげたところ、当事象が解消しました。

    アドバイスいただいたように、VS.NETからはファイル出力がされていなさそうであることから、

    AssetViewの誤検知ということでクローズとします。


    • 回答としてマーク Lots_Mei 2019年4月9日 5:54
    • 編集済み Lots_Mei 2019年4月9日 5:58 誤字修正
    2019年4月9日 5:54

すべての返信

  • 確認ですが、「出力しようとする」は正しいのでしょうか? 読み取りアクセス、つまり存在すれば開こうとしているだけではありませんか?

    Process Monitorを使用すると、どのプロセスがどのファイルにアクセスしようとしたのか、その際のパラーメーターも含めて確認することができます。ファイル作成なのか、ファイル読み取りなのかをはっきりさせることをお勧めします。

    2018年11月22日 6:12
  • 佐祐理さん

    アドバイスありがとうございます。AssetViewにて検知したのが「読み込み専用デバイスへの書き込みを検知しました」となっていたので、書き込み(ファイル作成)と考えておりました。

    本日は開発環境にアクセスができないため、後ほどProcessMonitorで確認してみます。

    確認したら改めて返信いたします。

    --------------------

    2018/11/27 追記

    ProcessMonitorにて確認してみました。フィルターはできるだけ解除、〜Shared.pdbファイルのログ(パスでフィルタ)をみました。該当のpdbファイルが引っかかったProcessはdevenve.exeのみでした。

    OperationはCreateFileになっておりましたが、D:ドライブへの出力のログがありませんでした・・・

    ただ、CreateFileについてもSuccessになっているものはなく、以下のようにエラーとなっていました。(AssetViewにて検知するタイミングと同時にProcessMonitorに出るログ)

    1.C¥"アプリケーション名"¥bin¥x86¥Debug¥~

    NameNotFound

    2.C:¥Windows¥assembly¥GAC_MSIL¥CrystalDelisions.Shared¥~(参照しているdllファイルと同様の場所)

    NameNotFound

    3.C:¥Windows¥CrystalDelisions.Shared.pdb

    NameNotFound

    4.c:¥WINDOWS¥symbols¥dll¥CrystalDelisions.Shared.pdb

    PATH NOT Found (実際に該当フォルダ無し)

    5.c:¥WINDOWS¥dll¥CrystalDelisions.Shared.pdb

    PATH NOT Found (実際に該当フォルダ無し)

    6.C¥"アプリケーション名"_ou¥bin¥x86¥Debug¥~

    PATH NOT Found (実際に該当フォルダ無し)

    7.C¥"アプリケーション名"_ou¥bin¥x86¥MicrosoftPublicSymbols¥~

    PATH NOT Found (実際に該当フォルダ無し)

    d:¥crew¥win32_x86¥release¥bin¥crystalreports.sdk.dotne¥dotnet3¥

    に出力する形跡無しにもかかわらず書き込みを検知するという状態です。。。

    • 編集済み Lots_Mei 2018年11月27日 6:04
    2018年11月26日 4:50
  • AssetViewクライアントのバージョンを10.4.1にあげたところ、当事象が解消しました。

    アドバイスいただいたように、VS.NETからはファイル出力がされていなさそうであることから、

    AssetViewの誤検知ということでクローズとします。


    • 回答としてマーク Lots_Mei 2019年4月9日 5:54
    • 編集済み Lots_Mei 2019年4月9日 5:58 誤字修正
    2019年4月9日 5:54