У меня есть C ++ DLL проект, который создан в VS 2010. Он выставлен как COM (ATL). Я использовал эту DLL для другого .NET Project в качестве ссылки. Настройки компоновщика проекта C ++ установлены следующим образом:
"Register Output" = Yes
"Per-user Redirection = Yes
Я создал определение сборки для сборки этих двух проектов в tfs 2010. C ++ Project работает нормально, но проект .NET завершается неудачно, поскольку выходная dll проекта C ++ не зарегистрирована. Установка «Перенаправление на пользователя» = false не работает. Я также попытался с помощью активности WF 'InvokeProecss' зарегистрировать dll c ++, используя Regsrv32 / batch file / mye exe и т. Д., Но я получил код выхода 5. Мой TFS 2010 находится в Windows 2008 Server R2. И я думаю, что он не запускает процесс от имени администратора.
Если я создаю dll взаимодействия с использованием tlbimp, а затем ссылаюсь на это взаимодействие в моем проекте .NET, оно работает нормально (очевидно, в сборке tfs мне нужно добавить InvokeProecss для вызова tlb). Но это неприемлемо, поскольку наша общая практика - ссылаться на COM-dll напрямую из проекта .NET.
Может кто-нибудь помочь с этим?
Есть ли способ запустить действие автоматической сборки tfs 'InvokeProcess' в качестве администратора без запроса имени пользователя / пароля?