[ Примечание : В конце концов я получил подсказку от Карла Цикмунда в этой теме , которая помогла мне разгадать тайну. Я вставлю свой ответ сюда - для большего блага].
Итак, я использовал следующую строку для подписи при импорте сборки:
tlbimp C: \ WINDOWS \ system32 \ msi.dll /out:Interop.WindowsInstaller.dll /keyfile:MyKey.snk
Затем я скопировал файл в соответствующее место и собрал проект, но каждый раз при сбое сборки возникала следующая ошибка: Не удалось создать сборку - у ссылочной сборки Interop.WindowsInstaller нет строгого имени .
Я думал, что проблема была в строке tlbimp, но после прочтения ответа Карела Зикмунда и проверки того, что DLL имеет строгое имя (используя sn -vf Interop.WindowsInstaller ), я обнаружил проблему.
Добавление ссылки на COM-объект «Библиотека объектов установщика Microsoft Windows» фактически вставило блок кода в файл .csproj.
Я не осознавал этого, но этот блок вызывал регенерирование DLL-файла с нуля при каждой сборке проекта . Разумеется, сгенерированный файл больше не назывался со строгим именем.
Способ, который я решил, заключался в том, чтобы удалить ссылку на «Библиотеку объектов установщика Microsoft Windows» из проекта и добавить прямой файл ссылку на импортированное (и уже подписанное) Interop. WindowsInstaller.dll file.