私のアプリが「デバッグ」ではなく「リリース」としてコンパイルされているかどうかを確認するにはどうすればよいですか?私はVS 2008のプロジェクトのプロパティ>ビルドし、設定をデバッグからリリースに行ったが、私は変更に気づいた?これはASP.NETプロジェクトです。Asp.netリリースビルド対デバッグビルド
1
A
答えて
4
1
Web.configの1つのデバッグはtrueに設定されますが、リリースアプリケーションでもこれを実際に設定できます。デバッグで
しかしDEBUGが設定されているように定義し、それを行うには簡単です:
bool is_debug;
#ifdef DEBUG
is_debug = true;
#else
is_debug = false;
#endif
3
あなたはDLLは、デバッグ属性で、デバッグモードで構築されたかどうかを知りたい場合は、あなたの最善の策は反映です。
Assembly assembly = Assembly.GetAssembly(GetType());
bool debug = false;
foreach (var attribute in assembly.GetCustomAttributes(false)){
if (attribute.GetType() == typeof(System.Diagnostics.DebuggableAttribute)){
if (((System.Diagnostics.DebuggableAttribute)attribute)
.IsJITTrackingEnabled){
debug = true;
break;
}
}
}
これは、(効果自体に)そのコードを呼び出しているアセンブリを取得し、その後、アセンブリがデバッグモードでコンパイルされた場合はtrueにデバッグブール値を設定します、「How to tell if an existing assembly is debug or release」から撮影
それ以外の場合はfalseです。
これは、コンソールアプリケーション(リンクされた例のように)に簡単にドロップしてから、確認したいdll/exeのパスを渡すことができます。あなたは、このようなパスからアセンブリをロードします:
Assembly assembly =
Assembly.LoadFile(System.IO.Path.GetFullPath(m_DllPath.Text));
0
あなたはIsJITTrackingEnabled以上を探す必要があり - コードを最適化し、JITの最適化用にコンパイルされているかどうかとは完全に独立しています。
また、ReleaseモードでコンパイルしてDebugOutputを "none"以外に選択すると、DebuggableAttributeが存在します。
私の記事を参照してください: How to Tell if an Assembly is Debug or Releaseと How to identify if the DLL is Debug or Release build (in .NET)
のStackOverflowで関連する問題
- 1. デバッグビルドは、リリースビルド署名バージョン
- 2. リリース対デバッグビルド
- 3. デバッグビルドとリリースビルドの動作が異なります
- 4. Xcode/Cocoa:デバッグビルドとリリースビルドの違いは何ですか?
- 5. iPhoneリリースビルドがデバッグビルドと同じ機能を果たさない
- 6. デバッグビルド用のアプリケーションとリリースビルド用のMultiDexApplicationの切り替え
- 7. リリースビルドはデバッグビルドとは異なる動作をします
- 8. 1つのフレーバのリリースビルドとデバッグビルドの両方に署名する方法
- 9. Q/A、リリースはデバッグビルド対構築し、アサーション
- 10. ASP.NETプロジェクトのリリースビルドからページを除外
- 11. デバッグビルドとリリースビルドを区別するための変数またはプロパティを呼び出す
- 12. Firebase PhoneAuthenticationはデバッグビルドでは動作しますが、リリースビルドでは動作しません
- 13. Androidのメニューアイコンは、リリースビルドには表示されませんが、デバッグビルドに表示されます
- 14. NoClassDefFoundExceptionは、いくつかのクラスのライブラリプロジェクトがデバッグビルドに存在しないためにリリースビルドに存在します。
- 15. アプリはデバッグビルドで正常に動作しますが、リリースビルド時にクラッシュする可能性があります。
- 16. のiOSデバッグビルドは
- 17. XAMPPのPHPデバッグビルド
- 18. デバッグビルドのインライン関数
- 19. ASP.NET 4.0対ASP.NET MVC
- 20. Visual Studio 2005のASP.NETデバッグとリリースビルドはありますか
- 21. リリースビルドのMetadataException
- 22. リリースビルドの問題
- 23. Visual Studioリリースビルド
- 24. リリースビルドの確認
- 25. Q_ASSERTリリースビルドのセマンティクス
- 26. iOS:デバッグビルド用のオプションのコードフラグメント
- 27. Androidファブリック分散デバッグビルド:java.lang.UnsatisfiedLinkError
- 28. ASP.NET対Java EE対PHP
- 29. ASP.NET - インライン対コードビヘイビア
- 30. asp.netコアウィンザー対ConfigureServices
similars質問、一つの質問、および多くの、多くの異なる答え: http://stackoverflow.com/questions/654450/programatically- detect-release-debug-mode-net http://stackoverflow.com/questions/798971/how-to-idenfiy-if-the-dll-is-debug-or-release-build-in-net http://stackoverflow.com/questions/194616/how-to-tell-if-net-app-was-compiled-in-debug-or-release-mode http://stackoverflow.com/questions/50900/best-way-to-detect-a-release-build-from-a-debug-build-net http://stackoverflow.com/questions/890459/ asp-net-release-build-vs-debug-build – Kiquenet