Я создаю службу NServiceBus, и когда я запускаю ее (либо при отладке через Visual Studio, либо из командной строки), кажется, что NServiceBus.Host.exe перемещает библиотеки DLL, которые он запускает, в мою папку AppData.
Приложение зависит от ресурсов, которые существуют в папке bin\debug (например, папка плагинов, содержащая библиотеки DLL), но эти ресурсы не копируются во временную папку.
Моя среда — Windows 7 x64, и я пытался запустить как Visual Studio, так и мою командную строку от имени администратора без каких-либо изменений в поведении.
ИЗМЕНИТЬ
Поведение, по-видимому, происходит в Topshelf. Когда я выполняю отладку с помощью точки останова в конце конструктора моей конечной точки, он сначала останавливается, когда конечная точка создается в методе 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.