Где найти информацию о конфигурации сборки?

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

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

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

введите здесь описание изображения

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

С Уважением


person jwaliszko    schedule 19.04.2011    source источник


Ответы (3)


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

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

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

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

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

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

person j0tt    schedule 19.04.2011
comment
Третью строку я бы заменил на var config = attributes.OfType<AssemblyConfigurationAttribute>().FirstOrDefault();. Тогда вам не нужен бросок, и он выглядит немного чище, имхо. - person Philipp M; 24.06.2015

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

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

person Shawn    schedule 19.04.2011

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

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

person dkackman    schedule 19.04.2011