С# .Net 3.5 — есть ли возможность не внедрять сгенерированные Interop .dll файлы?
Я создаю приложение, позволяющее устанавливать важные обновления Windows через wuapi.dll. При создании на .Net 3.5 генерируется Interop.wuapi.dll файл, который необходимо держать в папке с проектом и программой; на .Net 4.0 можно установить свойство ссылки "Embed Interop Types" на true, и тогда он будет встраиваться в .exe файл.
Мне хотелось бы создать приложение именно на .Net 3.5 и именно одним .exe файлом. На форумах предлагают использовать ILMerge и ему подобные. Можно ли каким-то образом встроить сгенерированную .dll в проект без использования сторонних библиотек и решений, или вообще обойтись без создания этой .dll-ки?
Благодарю за совет! Хотелось бы узнать, если ли какие-либо подводные камни при декомпиляции и внедрении? Будет ли сгенерированный код корректно работать в Windows XP? (насколько мне известно, именно в нем появилась первая версия wuapi)
Я не вижу никаких подводных камней. По сути, при добавлении референса на COM-библиотеку студия генерирует interop-сборку. Нет никаких строгих правил, где должны быть расположены COM-интерфейсы - в подключаемой сборке или в вашей.