DEFINEs времени компиляции в проекте веб-развертывания ASP.NET

Моя среда Visual Studio 2005. Моя конкретная проблема заключается в том, что я хочу определить TRACE.

У меня есть проект веб-сайта, который отправляет сообщения трассировки при запуске сервера разработки ASP.NET благодаря определению его в system.codedomэлементе web.config.

При развертывании в IIS я делаю это через проект веб-развертывания. Так что сайт предварительно скомпилирован. Естественно, эти записи не имеют смысла на скомпилированном веб-сайте.

У меня вопрос, как мне определить TRACEв проекте веб-развертывания?

23.04.2009 21:20:00
2 ОТВЕТА
РЕШЕНИЕ

Насколько я могу судить, Visual Studio IDE не позволяет вам устанавливать постоянные времени компиляции в проектах веб-развертывания. Однако, поскольку файл .wdproj - это просто файл msbuild, вы можете редактировать его с помощью текстового редактора. Вам необходимо добавить элемент в разделы, как показано на скриншоте в приведенной ссылке.

Я не могу изменить ссылку на изображение, поскольку новые пользователи, по-видимому, не могут добавлять изображения: аннотированный снимок экрана .wdproj в текстовом редакторе http://img140.imageshack.us/img140/1719/deploymentproject.png

1
7.05.2009 18:20:38

В C # нет эквивалента #defines. Тем не менее, звучит так, как будто вы хотите использовать условную трассировку, которая легко выполняется. Если у вас есть диагностический код в вашем проекте, но вы хотите его определить, используйте, например, встроенную функцию трассировки

System.Diagnostics.Trace.WriteLine («Некоторая отладочная информация»);

Затем в вашем webconfig вы можете настроить его, используя

<configuration>
 <system.web>
  <trace enabled="true" requestLimit="40" localOnly="false"/>
 </system.web>
</configuration>

Больше информации здесь

0
7.05.2009 18:05:12
Serapth, спасибо за ваш ответ. Я думаю, что я был неясен в моем вопросе, хотя. Я понимаю, что могу включить трассировку ASP.NET в web.config и получить информацию, отображаемую в этой ссылке. Однако я хочу, чтобы Trace.Trace (Информация | Предупреждение | Ошибка) (сообщение) была отправлена ​​слушателям трассировки. Это требовало определения TRACE. Кроме того, #define прекрасно работает в C #. Попробуйте.
Justin Dearing 7.05.2009 18:18:35