z = (x == y ? 1 : 2);
эквивалентно
if (x == y)
z = 1;
else
z = 2;
, за исключением, конечно, короче.
Судя по ответам, это довольно распространенное явление, поэтому я просто опубликую то, что я делаю, чтобы обойти проблему.
Сначала я ' Начну с того, что я думаю, что ответ Бронумски должен сработать, но я не добивался успеха в прошлом, когда пробовал его.
Я могу обойти эту проблему, просто опубликовав файлы с помощью ClickOnce в локальной папке а затем ftp файлов вручную, исключая созданный каталог установки crystalreport.
Я знаю, что это не лучший ответ, но мне больше не нужно развертывать очень часто, и это моя работа по выпуск на данный момент. Прочтите все остальные ответы, чтобы найти тот, который может помочь решить вашу проблему.
Надеюсь, это поможет. Спасибо
По идее, вы делаете то же самое, что и я некоторое время назад. Единственное, что я сделал иначе, так это развернул его с сервера сборки, а не со своей машины. Откровенно говоря, меня не волновало, сколько времени потребуется на развертывание, лишь бы оно не прервало мою машину.
Я использовал CruiseControl.Net для сборок, поэтому, когда пришло время развернуть сборку выпуска, я бы просто отключил для нее сборку CC, запустил процесс публикации и через некоторое время проверил ее.
Модули слияния Crystal 11.5 для .Net содержат ошибки, и это вызывает проблемы при развертывании через ClickOnce.
В конце концов мы отказались от ClickOnce и выбрали установку с самораспаковыванием ( Nullsoft Установите систему ) и сразу же установил Crystal Redist на клиентский ПК.
Crystal - это кошмар, вы никогда не сможете «понять это правильно», но вы можете уменьшить головную боль.
Когда у меня возникла эта проблема, я создал отдельный установщик для Crystal Reports, который имел смысл для меня, потому что у меня было много программ, которые его использовали.
Это сократило время щелчка мышью при развертывании, но системы без необходимых компонентов могли вылетать из-за исключения, поэтому, когда я перенес все на Visual Studio 2008 и более новые Crystal Reports, я начал включать их вместо них.
Каждый раз, когда они устанавливаются, требуется больше времени. и обновление, но в моем случае это не стоит проблем с управлением предварительными условиями по сравнению с простотой развертывания.
Sorry to have to admit that I had a similar problem and ended up coming up with similarly arbitrary solution.
I ended up sitting between two stools, if the user didn't want Crystal on their machine, I offered an option to access a webservice hosted on a server with Crystal, so the job could be done remotely. If they had Crystal, the the job was done locally.
It wasn't perfect, but it least it was reasonably reactive.
Когда вы развертываете Приложение ClickOnce с предварительными требованиями, вы можете указать, откуда они загружаются, локально или от поставщика (например, Microsoft). Если вы укажете поставщика, он не будет включать необходимые двоичные файлы в ваш пакет развертывания.
Если Crystal не указала удаленное расположение, вы всегда можете выполнить свои собственные предварительные требования с помощью генератора манифеста начальной загрузки. Затем вы должны загрузить двоичные файлы Crystal в место на сервере развертывания, создать свои собственные предварительные условия, используя новый двоичный репозиторий в качестве сайта поставщика, добавить пользовательское предварительное условие в свое приложение clickonce и настроить его для загрузки с сайта поставщиков.