none
ASPXファイル内の埋め込みコードへのコンパイルオプションの設定方法について RRS feed

  • 質問

  • お世話になります。以下についてどなたかご存じの方がいましたらご教授下さい。

    <環境>

    Windows 7 Pro (x86)

    Visual Studio 2010 Pro

    .NET Framework 4.0

    <質問>

    Visual Studioでビルドを行った際に出るエラーや警告についてカスタマイズできると思いますが、

    そのカスタマイズ設定がASPXファイル内の埋め込みコードになぜか適用されません。

    コードビハインドファイル(ASPX.VB)のコードには適用されています。

    ASPXファイル内の埋め込みコードにも適用させる方法を教えていただきたいです。

    やりたいこととしては、Strict="True"にした状態で、以下のエラーのみを警告にしてコンパイルしたいです。

    「遅延バインドの解決です。ランタイム エラーが発生する可能性があります。」

    Visual Basic での警告の構成
    http://msdn.microsoft.com/ja-jp/library/3y20cc1z(v=vs.100).aspx

    <確認した手順>

    1.ASP.NETプロジェクトを作成する。

    2.Default.aspxに以下のコードを書く。

    <%
      Dim exeobj As Object
      exeobj = Server.CreateObject("ASPExec.Execute")
      exeobj.Application = "XXXX:\XXXXXX\perl.exe"
      exeobj.Parameters = "XXXXX:\XXXXXXXX.pl"
      Dim ret = exeobj.ExecuteDosApp
      exeobj = Nothing
    %>

    3.Default.aspx.vbのPageLoadメソッド内にも同じコードを書く。

    4.ソリューションを選択し右クリック→「プロパティ」で「コンパイル」タブの"Option Strict"を"ON"へ変更。

    5.「コンパイル」タブ内の「警告の構成」内の"遅延バインディングです。実行時に呼び出しに失敗する可能性があります。"をエラーから警告に変更。

    6.ビルド。

    ※なぜか「Default.aspx」のコード部はエラーになり、「Default.aspx.vb」は警告となる。

    【補足】
    Web.configに以下を加えて試してみましたがだめでした。
    <system.codedom>
        <compilers>
          <compiler
            language="vb;vbs;visualbasic;vbscript"
            extension=".vb;.aspx"
            type="Microsoft.VisualBasic.VBCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
            warningLevel="4"
            compilerOptions="/optionstrict+"
        />
        </compilers>
    </system.codedom>

    【質問の背景】
    現状の処理は全てASPX側に埋め込まれいる状態で、
    ・全てコードビハインドに実装する!
    ・「Server.CreateObject」でCOM系の呼び出しとかしない!
    という方法を取りたいですが、事情がありそれができません。

    かつコンパイルオプションでStrict=ONで
    "遅延バインディングです・・・"以外のエラーがないか確認しないといけない状況です。
    現状、"遅延バインディングです・・・"のエラーが大量に表示され、他のエラーが見れないです。
    「エラーの最大数が制限を超えました。」

    以上となりますが、どうぞ宜しくお願い致します。

    2013年4月4日 8:46

回答

  • 別スレッド でも似たようなことを書きましたが、できないことをそのまま求めるのは意味がありません。
    「なぜ、遅延バインド以外のエラーの数、警告の数を調べないといけないのか」を上司なり、客先なりに聞いてください。
    その上で、適切な手段を検討、提案してください。
    2013年4月4日 13:36

すべての返信

  • エラーはもちろん、警告も出ないようにコードを訂正するべきだと思いますが。

    • 回答の候補に設定 星 睦美 2013年4月8日 1:02
    2013年4月4日 11:11
  • 返信ありがとうございます。

    自分もそう思うのですが、「【質問の背景】」にも書かせてもらっている通りできない事情がありまして、

    「遅延バインドの解決です。ランタイム エラーが発生する可能性があります。」は無視したいのです。

    ASPの仕組みをそのままでASP.NETに移行させたいですが、このエラー以外は対応するようにしたいと思っています。

    2013年4月4日 12:34
  • 別スレッド でも似たようなことを書きましたが、できないことをそのまま求めるのは意味がありません。
    「なぜ、遅延バインド以外のエラーの数、警告の数を調べないといけないのか」を上司なり、客先なりに聞いてください。
    その上で、適切な手段を検討、提案してください。
    2013年4月4日 13:36
  • 返信ありがとうございます。

    ASP.NETやVisual Studioに関する知識が乏しいためできるかどうか自体が分からず、質問させて頂いた次第です。

    こちらの質問は、なぜASPXの埋め込みコードにはコンパイルオプションが適用されないのだろう?や設定の仕方が間違っているのかな?という疑問から質問させて頂きました。

    「なぜ、遅延バインド以外のエラーの数、警告の数を調べないといけないのか」についてですが、このエラー以外のエラーがないかを確認したいためです。

    これら以外のエラーがあれば対応するかしないか検討しようと考えています。現状、遅延バインドエラーが最大数の100件表示されてそれ以外のエラーが表示されません。。。

    記載して頂いてる別スレッドでも同じようなことを書かせて頂いていますが、

    出力させたいエラーはStrictをFalseからTrueにすると出るエラーで、なおかつ遅延バインドエラー以外の数とエラー種類を見たいと思っていました。

    こちらもできないというかそういう仕様なのであれば諦めて他の方法を考えたいと思います。

    2013年4月4日 14:52