У меня есть полное обсуждение событий и делегатов в моей статье events . Для простейшего типа события вы можете просто объявить публичное событие, и компилятор создаст как событие, так и поле для отслеживания подписчиков:
public event EventHandler Foo;
Если вам нужна более сложная логика подписки / отмены подписки , вы можете сделать это явно:
public event EventHandler Foo
{
add
{
// Subscription logic here
}
remove
{
// Unsubscription logic here
}
}
С VS2008 можно сделать это:
devenv solution.sln /build configuration
\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe
Партии параметров командной строки, но самое простое справедливо:
msbuild.exe yoursln.sln
Самый простой путь: перейдите к каталогу, содержащему решение или файл проекта, и работайте msbuild
(предположение, что у Вас есть Visual Studio 2005 или более новый).
более гибкие пути:
NAnt и MSBuild является самыми популярными инструментами для автоматизации сборки в .NET , и можно найти обсуждение там профессионалов/недостатков каждого в вопросе о Переполнении стека Лучший инструмент сборки.NET .
Изучите инструмент сборки NAnt или MSBuild. Я полагаю, что MSBuild является инструментом сборки для Visual Studio 2005 и позже. Я - однако, поклонник NAnt...
С Visual Studio 2005 , все файлы проекта (по крайней мере, для основанных на.NET проектов) фактические MSBuild файлы, таким образом, можно назвать MSBuild на командной строке и передать его файл проекта.
нижняя строка - то, что необходимо использовать "язык сценариев сборки" как NAnt или MSBuild (существуют другие, но это основные прямо сейчас), если Вы хотите иметь какой-либо реальный контроль над своим процессом сборки.
Я должен был сделать это для проекта C++ в Visual Studio 2003 , таким образом, я не знаю, как релевантный это должно позже присвоить версию Visual Studio:
В каталоге, где Ваш исполняемый файл создается, будет BuildLog.htm
файл. Открытый, что файл в Вашем браузере и затем для каждого раздела, такого как:
Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"
создают .rsp файл с содержанием между квадратными скобками (но не включая квадратные скобки) и называют его вообще, Вам нравится. Я, кажется, не забываю иметь проблемы с полными путями, таким образом, Вам, вероятно, придется удостовериться, что все пути относительны.
Тогда в Вашем сценарии сборки добавляют командную строку от BuildLog.htm
файл, но с Вашим .rsp именем файла:
cl.exe @autobuild01.rsp /nologo
(примечание также будет раздел link.exe, а также cl.exe)
Взгляните на UppercuT. Он приносит большую прибыль, и он делает то, что вы ищете, и многое другое.
UppercuT использует NAnt для сборки, и это безумно простой в использовании Build Framework.
Автоматизированная сборка так же проста, как (1 ) имя решения, (2) путь управления исходным кодом, (3) название компании для большинства проектов!
Вот несколько хороших объяснений: UppercuT