Я написал службу Windows в .Net и хочу предоставить классы для вызова другим кодом .Net. В частности, у меня есть API, который я хочу предоставить через DLL, которая будет помещена в GAC, и я хочу, чтобы DLL в GAC использовала классы .Net Windows Service. Мне нужна эта архитектура, так как код в Службе Windows должен запускаться от имени другого пользователя / учетной записи в качестве вызывающей стороны API (учетная запись будет создана во время установки).
Мой план состоял в том, чтобы выставить классы службы Windows через COM (regasm.exe для регистрации и tlbexp.exe для создания библиотеки типов), а затем вызвать классы в DLL-библиотеке GAC через COM (импортированные через tlbimp.exe). Однако я получаю следующую ошибку от tlbimp:
TlbImp: ошибка TI0000: System.Runtime.InteropServices.COMException - Библиотека типов '' была экспортирована из сборки CLR и не может быть повторно
импортировано как сборка CLR.
Это подразумевает, что мой метод не сработает легко. Я могу только думать, что мне может понадобиться C ++ DLL в качестве моста для моей GAC DLL для вызова COM-вызовов, но это кажется неприятным решением.
Я в основном ищу предложения. Кто-нибудь знает, как открыть классы службы Windows, написанные в .Net, для другого кода .Net?