Почему NServiceBus.Host.exe не выполняет мой код на месте? - PullRequest
0 голосов
/ 12 июля 2010

Я создаю службу NServiceBus, и когда я запускаю ее (в режиме отладки через Visual Studio или из командной строки), NServiceBus.Host.exe, кажется, перемещает библиотеки DLL, которые он выполняет, в мою папку AppData.

Приложение зависит от ресурсов, которые существуют в папке bin \ debug (например, папка плагинов, содержащая библиотеки DLL), но эти ресурсы не копируются во временную папку.

Моя среда - Windows 7 x64, и я попытался запустить Visual Studio и командную строку в качестве администратора без изменений в поведении.

EDIT

Поведение, кажется, происходит в пределах Топ-полки. Когда я отлаживаю через точку останова в конце конструктора моей конечной точки, она сначала останавливается, когда конечная точка создается в методе Main из Program.cs; среда на данный момент:

? GetType().Assembly.CodeBase
"file:///C:/Projects/ProcessorService/ProcessorService/bin/Debug/ProcessorService.DLL"
? GetType().Assembly.Location
"C:\\Projects\\ProcessorService\\ProcessorService\\bin\\Debug\\ProcessorService.dll"

Однако, когда конструктор вызывается снова, на этот раз из конструктора GenericHost, это среда:

? GetType().Assembly.CodeBase
"file:///C:/Projects/ProcessorService/ProcessorService/bin/Debug/ProcessorService.DLL"
? GetType().Assembly.Location
"C:\\Users\\MyUser\\AppData\\Local\\assembly\\dl3\\D5KV9218.DO9\\YOKC5KD8.C92\\4474672e\\06519009_7623cb01\\ProcessorService.DLL"

Я не вытащил код TopShelf для отладки, чтобы точно увидеть, где происходит перемещение dll. Но это определенно происходит в NServiceBus.Host.Exe.

Ответы [ 3 ]

3 голосов
/ 15 июля 2010

Я полагаю, что вы работаете со своими сервисами в том, что Topshelf называет «изолированным» режимом, где мы скрываем копируем все ваши сборки.

Не могли бы вы опубликовать конфигурацию topshelf / nsb.host.

-d

0 голосов
/ 15 июля 2010

Теневое копирование - это когда .net копирует библиотеки DLL перед их загрузкой, чтобы вы могли обновить код без конфликтов блокировки. Это похоже на твоего преступника.

0 голосов
/ 14 июля 2010

NServiceBus ничего не перемещает, он полностью запускается в папке bin / debug (в Visual Studio) или в установленном каталоге при непосредственном запуске.

...