Ich nehme an Crystal GAC installiert. Sie müssen also den globalen Assemblycache programmatisch durchsuchen und dort nach einer Crystal Assembly suchen.
GAC kann programmgesteuert über Windows API verwaltet werden. Here you will find ein einfacher Wrapper, der es ermöglicht, GAC von einem verwalteten Code zu verwalten
Aber ich würde nicht empfehlen, dass Sie diesen Weg gehen. :)
Die gute Lösung in der Regel auch während der Installation der Software für alle erforderlichen Baugruppen zu überprüfen, nehme ich an Windows Installer-Funktionen für Baugruppen
jedoch zu prüfen hat, ist es nicht immer in Ordnung ist. Angenommen, Sie möchten, dass Benutzer Ihr Programm auch ohne Crystal ausführen, aber keine Showberichte zulassen, wenn Crystal nicht installiert ist.
In diesem Fall sollten Sie alle Berichtsfunktionen von anderen Formularen entkoppeln. Sie sollten ein separates Projekt mit Crystal Reports-Funktionalität erstellen, nennen wir es MyReports. Nur dieses Projekt sollte auf Crystal-Assemblies verweisen, andere nicht. Andere Projekte sollten auch nicht direkt auf MyReports verweisen.
Und schließlich sollten Sie Reflection verwenden, um einen Report Viewer aufzurufen, der in MyReports aus anderen Projekten implementiert ist.
Normalerweise schreiben Sie try/catch um die Prozedur herum, in der Sie die MyReports-Assembly aus der Datei laden. Also, wenn Crystal oder etwas anderes nicht existiert, wird es eine Ausnahme auslösen, Sie werden es dem Benutzer anzeigen, aber die anderen Teile des Programms werden funktionieren.
Sie können auch über Dependency Injection Entwurfsmuster lesen, hilft es, solche Probleme zu verwalten.
Der Link ist gebrochen –
Hallo Jon, der Link ist nicht kaputt - SO hat einen Fehler. Versuchen Sie diese http://tinyurl.com/b44zl8 – RichardOD