Не очень понятно, в чем именно заключается ваша проблема, так как вы говорите, что она не будет установлена на машине. что вы имеете в виду? установка не удалась? или вы просто копируете его и пытаетесь запустить? вы получаете какие-либо сообщения об ошибках?
вы установили сервис? или это сделано как часть сборки? это может объяснить, почему копирование на компьютер не работает, а сборка работает ... Работает ли exe, скомпилированный на компьютере разработчика, после того, как вы установили VS на новый компьютер?
Я бы сначала проверил, что на вашей целевой машине установлена правильная версия .net, так как установка VS включит его, если это не так.
Я бы использовал такой инструмент, как procmon, чтобы увидеть, что происходит при запуске службы, чтобы убедиться, что отсутствует какая-то dll.
Дополнительная информация может помочь получить ответ немного быстрее ...
EDIT:
После вашего редактирования за исключением я немного погуглил и наткнулся на этот поток , который предлагает несколько вариантов, но основной, который, казалось, вылечил его для некоторых (при условии, что у вас нет зависимости, которые не могут быть разрешены) заключается в том, что вы не запускаете утилиту установки от имени администратора:
Цитировать из темы:
Вы работаете с «обычным пользователем». Я предполагаю, что вы можете работать под учетной записью, которая является членом локальной группы администраторов, но с включенным Vista UAC даже администраторы работают от имени обычного пользователя, пока они не запустят приложение, которое делает явный запрос администратора - в этот момент вы обычно получите запрос на повышение прав администратора. InstallUtil.exe не помечен как явно требующий администратора, поэтому это не удается.
Либо создайте сценарий cmd, который запускает InstallUtil youService.exe, и задайте для сценария требование администратора, либо выполните «runas / user: Administrator cmd.exe» и запустите оттуда InstallUtil.
и если это не проблема, то другой парень предлагает:
Я обнаружил, что установка работает, когда я использую InstallUtil.exe в 32-разрядной среде, но генерирует исключение System.Reflection.ReflectionTypeLoadException при запуске InstallUtil.exe в 64-разрядной среде. Это настройка, которую мне нужно добавить в мой проект, или структура, которую я включаю, которая не поддерживается 64-битной версией? (хотя я думал, что это обратно совместимо).
Не уверен, поможет ли это, но вы никогда не знаете ...