Я запускаю развертывание своего веб-приложения, и я должен гарантировать, что все блоки, которые будут развернутыми, были созданы с помощью конфигурации Выпуска. Наша система была разработана с помощью C#/.Net 3.5.
Там какой-либо путь состоит в том, чтобы достигнуть этого?
Проверьте это . Идея состоит в том, что вы получаете список атрибутов сборки с помощью Assembly.GetCustomAttributes ()
и выполняете поиск DebuggableAttribute
, а затем выясняете, имеет ли такой атрибут свойство IsJITTrackingEnabled
.
public bool IsAssemblyDebugBuild(Assembly assembly)
{
return assembly.GetCustomAttributes(false).OfType<DebuggableAttribute>().Any(da => da.IsJITTrackingEnabled);
}
Не запускайте в производство через Visual Studio. Посмотрите на Непрерывная интеграция и скриптовые сборки (например, с NAnt, или что-нибудь более понятное, например, FAKE).
Ключ F5 не является сборочным процессом
Чтобы отвлечь внимание тех, кто считает, что это не отвечает на вопрос, ФП написал:
... Мне нужно гарантировать, что все сборки, которые будут Развернутые были построены с использованием конфигурации Release.
До гарантируйте , что используйте сервер сборки, такой как TeamCity и, возможно, инструмент управления выпуском, такой как Octopus Deploy . Блокируйте производственные системы, чтобы разработчики могли пройти официальный процесс сборки.
Мне понравилось это предложение Дэвида , но вы могли также сделайте это ( AssemblyInfo.cs
):
#if DEBUG
[assembly: AssemblyDescription("Your application assembly (DEBUG version)")]
#else if RELEASE
[assembly: AssemblyDescription("Your application assembly (RELEASE version)")]
#endif
Это более удобно для человека, так как любой может щелкнуть правой кнопкой мыши эту сборку, выбрать Свойства
и перейти к Подробности
таб.