Я полагаю, Кристалл устанавливается в GAC. Итак, вам нужно программно просматривать глобальный кеш сборки и искать там сборку кристалла
GAC можно программно управлять через Windows API. Here you will find простая оболочка, которая позволяет управлять GAC из управляемого кода
Но я бы не рекомендовал вам идти этим путем. :)
Хорошее решение, как правило, слишком проверить для всех необходимых сборок во время установки программного обеспечения, я полагаю, установщик Windows имеет функции для проверки для сборок
Однако, это не всегда в порядке. Предположим, если вы хотите, чтобы пользователи запускали вашу программу даже без Crystal, но не разрешайте показать отчеты, если Crystal не установлен.
В этом случае вы должны отделить все функции отчетов от других форм. Вы должны создать отдельный проект с функциями Crystal Reports, назовем его MyReports. Только этот проект должен ссылаться на сборки Crystal, в то время как другие не должны. Другие проекты также не должны напрямую ссылаться на MyReports.
И, наконец, вы должны использовать отражение, чтобы вызвать средство просмотра отчетов, которое реализовано внутри MyReports из других проектов.
Обычно вы будете писать try/catch вокруг процедуры, в которой вы будете использовать отражение, чтобы загрузить сборку MyReports из файла. Итак, если Crystal или что-то еще не существует, он будет генерировать исключение, вы покажете его пользователю, но другие части программы будут работать.
Кроме того, вы можете прочитать о Зависимость впрыска шаблон дизайна, он помогает справляться с такими проблемами.
Ссылка не удалена –
Привет, Jon, ссылка не сломана - у SO есть ошибка. Попробуйте это http://tinyurl.com/b44zl8 – RichardOD