Где найти информацию о конфигурации сборки? - PullRequest
9 голосов
/ 19 апреля 2011

в файле AssemblyInfo.cs У меня есть следующий подраздел:

#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif

Где эту информацию можно увидеть после сборки сборки? Поскольку в деталях файла ничего об этом нет:

enter image description here

где еще его можно найти?

Привет

Ответы [ 3 ]

11 голосов
/ 19 апреля 2011

Вы можете использовать отражение, чтобы получить эту информацию. Я считаю, что это будет что-то вроде следующего.

Assembly assembly = Assembly.GetExecutingAssembly();
object[] attributes = assembly.GetCustomAttributes(true);
var config = attributes.OfType<AssemblyConfigurationAttribute>().FirstOrDefault();
if (config != null) {
        Debug.WriteLine(config.Configuration);
}

Думаете ли вы об этом дальше, это ваше намерение?

Как проверить, была ли сборка построена с использованием конфигурации Debug или Release?

Пост блога, связанный с верхним ответом, показывает лучший способ определить, является ли сборка Отладочной: http://stevesmithblog.com/blog/determine-whether-an-assembly-was-compiled-in-debug-mode/

Один ответ указывает, что если вы используете атрибут AssemblyDescription для условного включения Release / Debug в текст, вы можете получить эту информацию в Windows Explorer.

3 голосов
/ 19 апреля 2011

Вы можете использовать ILDASM.exe для просмотра скомпилированной сборки. См. http://msdn.microsoft.com/en-us/library/ceats605.aspx для получения информации об использовании ILDASM.exe.

Или вы можете использовать Reflection для просмотра через код, такой как System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes()

1 голос
/ 19 апреля 2011

Лист свойств Windows Explorer извлекает эту информацию из ресурсов win32 VERSIONINFO .Ряд атрибутов сборки может быть сопоставлен с полями ресурса win32 (и будет установлен сборкой), но может случиться так, что атрибут AssemblyConfiguration не является одним из них.

Есливы хотите просмотреть все атрибуты сборки, включая те, которые не устанавливают поля ресурсов win32, .NET Reflector - это один из вариантов.

...