У меня есть библиотека классов C#, которая ссылается на System.Data.SQLite (from nuget). Это структура моей папки бен после сборки:Visual Studio - установка InstallShield в проекте с System.Data.SQLite
- MyProject.dll
- System.Data.SQLite.dll
- x86/SQLite.Interop.dll
- x64/SQLite.Interop .dll
System.Data.SQLite
нуждается в SQLite.Interop
для запуска и правильный DLL находится во время выполнения. Однако, когда я создаю установку с InstallShield, которая включает основной вывод проекта, папки x86 и x64 не копируются и мое приложение не запускается.
Есть какой-либо способ заставить Visual Studio включить x86 и x64 папки на основном выходе?
Существует ли способ включить папки вручную в InstallShield с относительной пути?
Моя среда:
- Visual Studio 2012 Professional
- Установить Shield 2013 Limited Edition (Free)
- System.Data.SQLite 1.0.96
Эти звуки похожи на зависимости, а не на первичный вывод, но помните, что группы вывода предназначены для удобства, а не для управления. Если вы хотите полностью контролировать свою настройку, вам лучше выбрать файлы статически. –
К сожалению, папки x64 и x86 управляются пакетом Nuget, поэтому единственный способ, которым я нашел, - использовать абсолютный путь. Он работает, но каждый разработчик должен будет настроить его на своем собственном компьютере. Было бы здорово, если бы я мог использовать относительный путь, но я не нашел, как со свободной версией. – Rafael
@ Rafael Просто так вы знаете. Вы можете вручную изменить файл setup.isl с 'c: \ yourpath \ packages \ System.Data.SQLite.Core.1.0.94.0 \ build \ net40 \ x86 \ SQLite.Interop.dll' на' <ISProjectFolder>. . \ packages \ System.Data.SQLite.Core.1.0.94.0 \ build \ net40 \ x86 \ SQLite.Interop.dll' (или где бы вы ни располагали ваш SQLite.Interop) – Markus