несколько версий Crystal Reports в web.config - PullRequest
1 голос
/ 20 марта 2009

Раньше мы не использовали Crystal Reports. В нашем проекте мы добавили Crystal Reports в наш проект. Когда я перенес свой проект на сервер, он выдал ошибку Crystal. Я подозреваю, что Crystal не установлен на сервере. Затем установил Crystal 11 на сервер. У машин разработки есть Crystal 8.5. Сервер выдает эту ошибку при запуске приложения.

"Не удалось загрузить файл или сборку" CrystalDecisions.ReportAppServer.ClientDoc, версия = 10.2.3600.0, Culture = нейтральный, PublicKeyToken = 692fbea5521e1304 'или одна из его зависимостей. Система не может найти указанный файл. "

  • Возможно ли иметь две версии ссылка в web.config? (то есть кристалл 8,5 и 11)

  • Как решить эту проблему?

Использование C #, Visual Studio 2005 и Crystal Reports 8.5 в среде разработки.

Ответы [ 6 ]

1 голос
/ 07 марта 2012

Лучшее решение - установить ту же среду выполнения на сервере.
В любом случае, вы можете использовать этот XML в вашем app.config или web.config:

  <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="CrystalDecisions.CrystalReports.Engine" publicKeyToken="692fbea5521e1304" culture="neutral"/>
        <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="CrystalDecisions.Shared" publicKeyToken="692fbea5521e1304" culture="neutral"/>
        <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="CrystalDecisions.ReportSource" publicKeyToken="692fbea5521e1304" culture="neutral"/>
        <bindingRedirect oldVersion="xx.x.xxxx.x" newVersion="yy.y.yyyy.y"/>
      </dependentAssembly>
      <dependentAssembly>
        ...
    </assemblyBinding>
  </runtime>

где oldVersion - версия, используемая для разработки, а newVersion - версия, установленная на сервере

0 голосов
/ 30 июля 2010

10.2.3600.0 - это версия Crystal Reports, которая была включена в Visual Studio 2005 с последним патчем.

Вам необходимо установить среду выполнения Crystal Reports для .net 2.0 на сервере. Вы можете получить инсталляторы времени выполнения с машины разработчика

64 C: \ Program Files (x86) \ Microsoft Visual Studio 8 \ Crystal Reports \ CRRedist \ X64

x86 C: \ Program Files (x86) \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ BootStrapper \ Packages \ CrystalReports

0 голосов
/ 07 января 2010

Нет, невозможно ссылаться на две разные версии одной и той же сборки.

Один из способов сделать эту работу - это иметь два разных файла web.config. Один для разработчиков, другой для производства. Как часть вашего развертывания, просто используйте версию файла prod. Если ваше развертывание автоматизировано, это должно быть так же просто, как удалить dev web.config и переименовать рабочую версию после того, как файлы были скопированы.

0 голосов
/ 20 марта 2009

В сообщениях об ошибках все сказано. Есть ли на вашем сервере версия CrystalDecisions.ReportAppServer.ClientDoc 10.2.3600.0 с соответствующим токеном в GAC или где-то, где оно будет найдено вашим приложением или веб-сайтом?

Похоже, вам нужно обновить конфигурацию на сервере.

0 голосов
/ 20 марта 2009

Вам, вероятно, нужно добавить ссылку на эту DLL в вашем проекте (или иначе поместить ее в папку / bin.

0 голосов
/ 20 марта 2009

Это просто конфликт версий, поскольку ваша машина разработки использует более раннюю версию, она ищет эту версию файла .DLL, когда вы пытаетесь запустить его на сервере. Возможно, вам лучше убедиться, что на вашем компьютере разработчика и на сервере установлена ​​одна и та же версия, а затем убедиться, что ваш web.config использует файлы DLL из Crystal 11 в обоих.

Быстрый взлом на данный момент - определить правильную версию файла на сервере и ввести этот номер в файл web.config.

РЕДАКТИРОВАТЬ: Другой вариант - изменить версию .DLL в вашем файле web.config на сервере, что, в основном, и говорят другие. Проблема в том, что вам придется менять его каждый раз при развертывании ... что очень раздражает. К тому же, вы тестируете на компьютере разработчика, это не совсем верно, потому что вы тестируете другую программу. Вы почти гарантированно увидите ошибки в работе, которые вы никогда не увидите в DEV, потому что что-то изменилось между версиями.

По какой причине вы не можете установить Crystal 11 на свой ПК разработчика?

...