私はVS2010/2012を使用していますが、アセンブリがどのように構築されているかを確認する方法があるかどうかは疑問でした。アセンブリの作成方法の決定方法
デバッグで実行すると、#if DEBUG
を使用してデバッグ情報をコンソールに書き出します。
しかし、たくさんのアセンブリで終わると、どのようにビルドされているかを確認する方法はありますか?バージョン番号を取得するのは簡単ですが、ビルドタイプをチェックする方法を見つけることができませんでした。
私はVS2010/2012を使用していますが、アセンブリがどのように構築されているかを確認する方法があるかどうかは疑問でした。アセンブリの作成方法の決定方法
デバッグで実行すると、#if DEBUG
を使用してデバッグ情報をコンソールに書き出します。
しかし、たくさんのアセンブリで終わると、どのようにビルドされているかを確認する方法はありますか?バージョン番号を取得するのは簡単ですが、ビルドタイプをチェックする方法を見つけることができませんでした。
のいずれかを使用することができます:
コード内#if DEBUG
#if DEBUG
public const bool IsDebug = true;
#else
public const bool IsDebug = false;
#endif
と
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
または定数を使用して、私はそう私はあなたが「ビルドの種類を確認することによって何を意味するコードの両方によって、それを読んで、Windowsエクスプローラ
私はあなたに答えましたが、元の投稿とブログ投稿も読んで、次のようなちょっと変わったバージョンのIsAssemblyDebugBuildで終わりました: (x = DebuggableAttribute)!= null?(DebuggableAttributeとしてのx).IsJITTrackingEnabled:false); ' – Verakso
一度コンパイルすると、メタデータを自分で作成しない限り、作成できません。メタデータassemblyinfo
private bool IsAssemblyDebugBuild(string filepath)
{
return IsAssemblyDebugBuild(Assembly.LoadFile(Path.GetFullPath(filepath)));
}
private bool IsAssemblyDebugBuild(Assembly assembly)
{
foreach (var attribute in assembly.GetCustomAttributes(false))
{
var debuggableAttribute = attribute as DebuggableAttribute;
if(debuggableAttribute != null)
{
return debuggableAttribute.IsJITTrackingEnabled;
}
}
return false;
}
または使用:
たとえば、3通りの方法がありますAssemblyConfigurationAttribute
または.NET 4.5のAssemblyMetadataAttribute
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
または
#if DEBUG
[assembly: AssemblyMetadata("DefinedVariable", "DEBUG")]
#endif
+1 .net4.5でAssemblyMetadataについて知りませんでした – giammin
とすることができます第二の方法を好みます"? – Kippie
そして、あなたは本当に*知りたいことは何ですか? (条件付きコンパイルシンボル?最適化オプション?デバッグオプション?) –
達成しようとしていることを明確にすることはできますか? –