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

Вы можете проверить результат, имеющий счет = 2 для строк, которые соответствуют вопросу и ответ, где условие

select RespondentId 
from Answers 
when question in ( 'Big', 'Children')
and Answer ='Yes' 
group by RespondentId having count(*) = 2 
11
задан SO used to be good 24 May 2019 в 15:27
поделиться

3 ответа

Вы не можете, не совсем. Что вы можете сделать, это определить некоторые «условные символы компиляции», если вы посмотрите на страницу «Build» настроек вашего проекта, вы можете установить их там, чтобы вы могли написать операторы #if для их проверки.

Символ DEBUG автоматически внедряется (по умолчанию это можно отключить) для отладочных сборок.

Таким образом, вы можете написать код, подобный этому

#if DEBUG
        RunMyDEBUGRoutine();
#else
        RunMyRELEASERoutine();
#endif

Однако, не делайте этого, если у вас нет веских причин. Приложение, которое работает по-разному между сборками отладки и выпуска, никому не подходит.

16
ответ дан 3 December 2019 в 01:34
поделиться

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

См. Этот пост в блоге о том, как создавать конфигурационные файлы для нескольких сред с помощью MSBuild - http://adeneys.wordpress.com/2009/04/17/multi-environment-config/

В качестве альтернативы вы можете написать Задача MSBuild, которая будет редактировать определенный скомпилированный файл (ваш файл C # или VB) и запускать его в задаче BeforeBuild . Это было бы довольно сложно, так как вам нужно было бы решить, куда вставить его в файл, но, если у вас настроен какой-то токенизация, вы сможете это сделать. Я также сомневаюсь, что это будет красиво!

0
ответ дан 3 December 2019 в 01:34
поделиться

Если вы разгружете свой проект (в меню правой кнопкой мыши) и добавьте это непосредственно перед тегом , он сохранит файл, который имеет вашу конфигурацию в Это. Затем вы можете прочитать это обратно для использования в вашем коде.

<Target Name="BeforeBuild">
    <WriteLinesToFile File="$(OutputPath)\env.config" 
                      Lines="$(Configuration)" Overwrite="true">
    </WriteLinesToFile>
</Target>
16
ответ дан 3 December 2019 в 01:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: