Как использовать ATl COM из службы Windows
С помощью мастера VS2008 я создал службу (которая в настоящее время не выполняет ничего, кроме запуска и остановки)
Я хочу использовать (вне процесса) COM-объект
Если я добавлю #import "object.tlb", то перекомпиляция даст
ошибка C2812: #import не поддерживается с /clr:pure и /clr:safë
Изменение свойств на использование /clr (не чистое или безопасное) позволяет выполнить компиляцию, но установка службы завершается неудачно с "Ättempt для загрузки непроверяемого исполняемого файла с исправлениями"
Любой совет приветствуется
Питер
1 ответ
Это явно упоминается в статье MSDN для InstallUtil.exe:
Обратите внимание, что вы не можете развернуть службу Windows, созданную с помощью C++ с помощью Installutil.exe. Installutil.exe не может распознать встроенный собственный код, созданный компилятором C++. Если вы попытаетесь развернуть службу Windows C++ с помощью Installutil.exe, будет выдано исключение, например BadImageFormatException. Для работы с этим сценарием переместите служебный код в модуль C++. Затем напишите объект установки в C# или Visual Basic.