Использование ClickOnce с предварительным требованием Crystal Reports
У меня есть приложение .NET Winforms (созданное в VS2005), которое я развертываю с помощью ClickOnce. На одной из форм у меня есть средство просмотра отчетов Crystal Reports для просмотра пользователями отчетов, но для того, чтобы использовать это в приложении, я должен включить Crystal Reports XI Release 2 prereq, который они устанавливают до установки приложения. Это в основном устанавливает полированную версию Crystal на пользовательскую машину.
Он работает, публикуя этот способ, но это своего рода хлопот для пользователя, который должен ждать Crystal для установки и для меня огромная проблема, потому что публикация приложения с prereq занимает много времени, потому что оно для загрузки большой предварительной информации на сервер.
Поскольку публикация занимает так много времени, и новые установки не являются супер распространенными, я обычно не включаю prereq при публикации изменений и вместо этого публикую его только с prereq, если требуется новая установка.
Если вы использовали ClickOnce для публикации приложения с Crystal Reports, это то, как вы опубликовали его или есть более простой/лучший способ.
Есть ли способ включить /GAC CR dll, а не включать и устанавливать Crystal Report prereq или есть способ, которым я могу настроить развертывание OneClick, чтобы не копировать файл каждый раз. Если бы я мог настроить развертывание ClickOnce, поэтому мне не нужно включать prereq, а вместо этого просто указывать установку на стандартное местоположение, которое могло бы помочь.
Надеюсь, что это было несколько ясно и что кто-то может помочь. Благодаря
Ответы
Ответ 1
Из ответов кажется, что это довольно распространено, поэтому я просто опубликую, что я делаю, чтобы обойти эту проблему.
Сначала я начну, что думаю, что ответ Бронумского должен работать, но я не имел успеха с ним в прошлом, когда я его пробовал.
Способ, которым я сталкиваюсь с этой проблемой, - это просто опубликовать файлы, используя ClickOnce, в папку локально, а затем ftp файлы вручную, исключая созданный каталог установки crystalreport.
Я знаю, что это не очень хороший ответ для этого, но мне больше не нужно развертывать, и теперь это моя работа вокруг проблемы. Пожалуйста, прочитайте все другие ответы, чтобы найти тот, который может помочь решить вашу проблему.
Надеюсь, это поможет. Благодаря
Ответ 2
При развертывании приложения ClickOnce с предварительными условиями вы можете указать, где загружаются предварительные условия, локальный или поставщик (например, Microsoft). Если вы укажете поставщика, он не включит в пакет развертывания обязательные двоичные файлы.
Если Crystal не указал удаленное местоположение, вы всегда можете сделать свое собственное предварительное условие, используя генератор манифеста Bootstrapper. Затем вы загрузите двоичные файлы Crystal в место на своем сервере развертывания, создайте свое собственное предварительное условие, используя новый бинарный репозиторий, как сайт поставщика, добавьте пользовательское предварительное условие в приложение clickonce и настройте его для загрузки с сайта поставщиков.
Я считаю, что в VS 2010 у вас есть третий вариант для предварительных условий ClickOnce, где вы можете настроить таргетинг на конкретный сайт, устраняя необходимость в вашем пользовательском предварительном требовании.
Ответ 3
Концептуально, вы делаете это так же, как и некоторое время назад. Единственное, что я сделал по-другому, это развернуть его с сервера сборки вместо моей машины. Честно говоря, мне все равно, сколько времени понадобилось для развертывания, пока оно не прерывает мою машину.
Я использовал CruiseControl.Net для сборки, поэтому, когда пришло время развернуть сборку релизов, я просто отключил бы сборку CC для него, запустил процесс публикации и проверил бы ее через некоторое время.
Ответ 4
Модули слияния Crystal 11.5 для .Net подвержены ошибкам, и это создает проблемы при развертывании через ClickOnce.
В конце концов мы нажали ClickOnce и отправились на установку самораспаковывающегося (Nullsoft Install System), и однажды установил Crystal Redist клиентских ПК.
Кристалл - это кошмар, вы никогда не сможете "исправить его", но вы можете смягчить головные боли.
Ответ 5
Когда у меня возникла эта проблема, я создал отдельный установщик для Crystal Reports. Это имело смысл для меня, потому что у меня было много программ, которые его использовали.
Это сократило клик после развертывания, но системы без префикса столкнулись бы с исключением, поэтому, когда я перенесил все в Visual Studio 2008 и новые Crystal Reports, я начал их включать.
Это занимает больше времени, каждый раз, когда они устанавливаются и обновляются, но в моем случае не стоит беспокоиться о том, как управлять превью и легкостью развертывания.
Ответ 6
Извините, что должен признать, что у меня была аналогичная проблема, и в итоге я придумал подобное решение.
В итоге я встал между двумя стульями, если пользователь не захотел использовать Crystal на своей машине, я предложил возможность получить доступ к веб-сервису, размещенному на сервере с помощью Crystal, чтобы работа могла выполняться удаленно. Если у них был Кристалл, работа была выполнена локально.
Это было не идеально, но, по крайней мере, это было разумно реактивно.