Подтвердить что ты не робот

InstallShield LE (с Visual Studio 2012) полностью не обнаруживает зависимости

У меня кошмар, пытающийся получить простой установщик, работающий в InstallShield LE (тот, который поставляется с VS 2012). Есть всевозможные проблемы, с которыми я могу работать (например, тот факт, что я больше не могу "перестроить все", без того, чтобы он все испортил - мне нужно просто выгрузить проект InstallShield во время разработки). Но biggie заключается в том, что при создании моего установщика он включает неправильную версию различных DLL (включая как те, которые являются частью моего проекта, так и сторонние, такие как DLL Entity Framework).

Выполнение "чистого решения" даже не устранило проблему с DLL, которые находятся в моем решении. Он находил случайную версию где-то на моей машине (в некотором роде каталог temp-компилятора) и настаивал на включении этого. В конце концов я исправил это, выполнив поиск в проводнике Windows и удалив каждый найденный файл, но я беспокоюсь, что в следующий раз, когда я сделаю выпуск, ему все же удастся выбрать неправильный файл.

Кроме того, мне нужно иметь как .NET 4, так и .NET 4.5 версии Entity Framework на моей машине, и он выбирает не тот, который входит в мой установщик. Я не могу удалить ту, которую я не хочу включать.

Какой абсолютно дрянной продукт. Я мог бы "обновить" до полной версии, чтобы понять, устраняет ли это какие-либо из этих проблем, но мой недавний опыт работы с версией LE отталкивает меня от использования каких-либо их продуктов когда-либо снова.

У кого-нибудь были подобные проблемы? Вы нашли решение?

4b9b3361

Ответ 1

Старое сообщение, возможно, это может помочь вам или другим, проходящим через эту беспредельную проблему (предполагая, что вы проходите ошибки как -6225).

Симптомы:

  • вы можете (перестроить) каждый проект без сбоев, включая проект "Установить щит"
  • однако, если вы создаете решение (из нескольких проектов), ошибки просто появляются.

Try:

  • в VS 2012, щелкните правой кнопкой мыши ваше решение и выберите Project Build Order
  • даже если порядок "смотрит" правильно, продолжайте устанавливать зависимости
    • например. ваш проект установки зависит от исходного проекта (очевидно, но поскольку этот инструмент не "знает", ему нужна некоторая помощь).

Я не уверен, что это решает проблему "неправильных DLL" (я не пережил эту боль...), но предложение проверить результаты проекта может помочь... выше было исправлено мое вопросы.

Да, я согласен, если он даже не может сделать четность с VS2010 и ниже настройками и развертываниями простоты использования, тогда его одна из тех, еще одна-еще-кривая обучения, иметь дело (трата времени). Не готов назвать это дрянной, хотя у него есть приятная (r) конфета - даже "ограниченная" версия.....

В любом случае я надеюсь, что это поможет...

Обновление 1

Да, я могу официально называть ISLE shoddy действительно. Теперь я ужасно испытываю "недостающие DLL" (забудьте ошибочные DLL, их даже нет в папке intall, извините красочную langauge, но WTF??!!). ISLE не может определить правильные зависимости - и я не согласен с предыдущим ответом. Эта проблема DID NOT существует со встроенным Setup and Deployment Project, который у нас был с VS 2005.

Согласился с комментарием относительно перемещения MS кости.

Как только я исправлю эту проблему, я обновлю.

Обновление 2

Мое исправление (если есть лучший способ, просьба дать ответ). Все это делается в интерфейсе ISLE:

  • Проверка зависимостей - первичный вывод проекта правой кнопкой мыши, выберите Dependencies from scan at build step 1 scan to see missing dependencies

  • Вы увидите зависимости, которые вы будете иметь вручную добавить, обозначенные красным значком step 2 identify missing dependencies
    Я отключил их, чтобы я мог избавиться от предупреждения -6248, которое действительно нечетно, потому что IMHO оно должно быть фатальной ошибкой в сборке. Как эта установка/установка возможно работать, если он отсутствует зависимостями?? Предупреждение продолжает сборку, но будет никогда не работать!

  • Затем (да) вручную добавьте указанные выше зависимости...

BTW, неуверенный, если это имеет значение - я начал весь процесс импортировал проект установки VS 2010 с использованием ISLE (ISLE menuVisual Studio Deployment Project Import Wizard). Я не уверен, действительно ли это имеет значение - re: сможет ли он Dependencies from scan at build работать с нуля (вместо импорта)?

Так много для "прогресса" в установке и развертывании для VS2012...

Надеюсь, это поможет!

Ответ 2

Недавно я столкнулся с проблемой, которую вы описываете: консольное приложение построено правильно, с обновленными версиями зависимостей в каталоге bin, но при упаковке с InstallShield LE используются старые версии библиотек зависимостей.

Как вы говорите:

Выполнение "чистого решения" даже не устранило проблему с DLL которые находятся в моем решении. Он нашел случайную версию где-то на моей машине (в некотором роде каталог компилятора temp) и настаивая на включении этого.

В моем случае повреждающие файлы находились в кеш динамической компиляции ASP.NET в C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root и C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

Очистка содержимого этих каталогов разрешила проблему.

В стороне, я подумал о добавлении действия сборки, чтобы пустые эти каталоги автоматически, но я не мог сделать это автоматически, не теряя права собственности.

Ответ 3

У каждого инструмента установки есть свои проблемы. Обратите внимание, что нет инструментов, которые могут точно определять зависимости вашего приложения. Лучший инструмент, который можно сделать, это делать предложения. Вот почему большинство разработчиков настраивают сами зависимости и вручную включают их в установщик.

Если вам не нравится InstallShield, вы можете попробовать другой инструмент настройки: http://en.wikipedia.org/wiki/List_of_installation_software

Бесплатная версия Advanced Installer включает проект установки Visual Studio, который может помочь.

Ответ 4

Вместо того, чтобы использовать экран установки, вы можете опубликовать свой проект, просто щелкнув правой кнопкой мыши по проекту, а мастер публикации - создать exe как единое изображение или любой другой ваш выбор. И, наконец, он позаботится обо всех зависимостях. Поэтому, когда установка exe создается мастером публикации чем он автоматически устанавливает все зависимости, такие как .net framework, и если какая-то среда выполнения, требуемая вашим приложением, будет предупреждать вас об установке этого.

Вы можете посмотреть на это

http://msdn.microsoft.com/en-IN/library/31kztyey.aspx

Ответ 5

У меня возникла проблема с моей DLL. Он где-то схватил гораздо более старую. Ничего не было в GAC для этой DLL. Я все пробовал. Наконец, я просто добавил ручную работу (ISLE) в разделе "Файлы", щелкнув правой кнопкой мыши и выбрав "Добавить". Я нашел DLL в папке \obj\Release. Затем я только что построил Release (SingleImage), и все работало правильно.

Ответ 6

Вы можете исправить проблемы с порядком сборки (например, при попытке перестроить решение), щелкнув правой кнопкой мыши на решении → Зависимости проекта → Выберите проект установки и проверьте проекты, которые он использует. (Протестировано в VS2013)

Я ожидал, что проект InstallShield автоматически установит эти зависимости, когда вы выберете его исходные файлы, но, видимо, этого не делает.