У меня есть решение C #, которое получает доступ к проекту C ++ через COM. Проект должен быть ориентирован на конкретный процессор, в данном случае x64. Я использую установщик Windows для установки приложения.
Первая проблема, с которой я столкнулся, заключалась в том, что c ++ dll не регистрировалась должным образом при установке, и программа не могла получить к ней доступ. Я решил это, добавив проект C ++ к решению.
Некоторое время это работало, и все устанавливалось правильно, но затем я начал получать следующее предупреждение при попытке собрать:
Целевая версия .NET Framework в проекте не соответствует версии условия запуска .NET Framework «.NET Framework 3.5». Обновите версию условия запуска .NET Framework, чтобы она соответствовала целевой версии .NET Framework в диалоговом окне расширенных параметров компиляции (VB) или на странице приложения (C #, F #).
Установка не будет установлена, если я попытаюсь игнорировать предупреждение. После некоторых поисков я обнаружил, что проект c ++ собирался в .NET 4.0, а мое решение использовало .NET 3.5. Я попытался изменить свое решение на 4.0, но по какой-то причине оно перестало работать, поэтому я изменил c ++ на 3.5.
Это работало для нескольких сборок, но потом я начал получать следующие ошибки:
Error: LNK1104 cannot open file 'mfc90.dll'.
Я добавил файл в раздел «Дополнительные зависимости», но затем произошла другая ошибка ссылки (mfcs90.dll), и при добавлении я получил конфликт x86 x64.
Я не уверен, почему эти решения работали некоторое время, а затем остановились, и я не могу найти решение на любом этапе, который работает. Если кто-нибудь видел что-то похожее на это, понимание будет оценено.
Чтобы включить DLL-библиотеки времени выполнения Microsoft, вы не должны просто включать DLL в каталог своего приложения. Это не поможет, когда библиотеки имеют различные зависимости, и вы можете столкнуться с различными конфликтами и проблемами управления версиями.
Я бы порекомендовал установить DLL-библиотеки времени выполнения для вашего приложения, включив официальный модуль слияния в ваш MSI.
Посмотрите следующую ссылку для ваших вариантов перераспределения библиотеки времени выполнения:
http://msdn.microsoft.com/en-us/library/ms235316(v=vs.90).aspx
Других решений пока нет …