奇妙な問題があります
#if (!DEBUG)
checkLicense();
#endif
Release
これは、 と の両方の構成で正しく機能していDebug
ます。しかし、リリース構成を使用して公開しようとすると、この条件は実行されません。パブリッシュがデバッグ DLL を使用しているようです。
私は何を逃したのですか?
奇妙な問題があります
#if (!DEBUG)
checkLicense();
#endif
Release
これは、 と の両方の構成で正しく機能していDebug
ます。しかし、リリース構成を使用して公開しようとすると、この条件は実行されません。パブリッシュがデバッグ DLL を使用しているようです。
私は何を逃したのですか?
さまざまなデプロイメントモードに基づいて、プロジェクトごとにDEBUG定数を定義するかどうかを制御する設定があります。チェックボックスがオンになっていることを確認して、定数が「リリースモード」に定義されていることを確認するには、この回答を参照してください。Define DEBUG constant
このチェックボックスがオンになっていない場合、サイトをコンパイルする前にデバッグコードがプリプロセッサによって削除され、他の回答としてELSEを含めても、コードは実行されません。
それが機能しない場合は、別の可能性として、リリースコードを実行しているマシンにmachine.config
、デプロイメント要素が含まれている可能性があります。
<deployment retail="true" />
web.config
この要素は、アプリケーションの設定を上書きし、マシン上のすべての.NETアプリケーションのデバッグフラグをfalseに設定します。
したがって、可能であれば、それを確認してください。私があなたに与えた最初の選択肢ははるかに可能性が高いと思いますが。
以前はWebFormsを使用していると思っていたのに対し、mvcタグに気付いたので、他の答えの代わりになります。
ビューで偶然に提供したコードスニペットはありますか?
その場合、プロジェクトのDEBUG設定は、実行時にビューが生成されるときに尊重されないため、web.configファイルのデバッグフラグのみが尊重されます。
まず最初に、この「if」に足を踏み入れて、try\catch を使用していることを確認する必要があります。
#if (!DEBUG)
MessageBox.Show("I'm in");
try{
checkLicense();}
catch{MessageBox.Show("ERROR IN checkLicense");}
#endif
バージョンを取り出して実行するよりも。あなたが「もし」にいるなら、あなたはそれを知っているでしょうし、あなたが例外を持っているなら、あなたもそれを知っています.
あなたも試すことができます
#if DEBUG
....
#else
.....