Frage

In einer VS2010 -Lösung habe ich eine lizenz.licx -Datei, die enthält:

DataDynamics.ActiveReports.ActiveReport, ActiveReports6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Web.WebViewer, ActiveReports.Web, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Export.Pdf.PdfExport, ActiveReports.PdfExport, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Design.Designer, ActiveReports.Design6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff
DataDynamics.ActiveReports.Viewer.Viewer, ActiveReports.Viewer6, Version=6.1.2814.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff

Wenn ich die Lösung auf einer Maschine baue, die eine Lizenz für ActiveReport hat, ist alles in Ordnung. Wenn ich die Lösung auf einer Maschine baue, die keine Lizenz für ActiveReport hat, bekomme ich:

Fehler 1 'konnte keine Datei oder Assemblierung laden' ActiveReports6, Version = 6.1.2814.0, Culture = Neutral, PublicKeyToken = CC4967777C49A3ff 'oder eine seiner Abhängigkeiten. Der Betrieb wird nicht unterstützt. (Ausnahme von HResult: 0x80131515) 'LC

Auf der Maschine, die keine Lizenz für ActiveReport hat, wenn ich die oben genannten Zeilen aus der lizenz.licx -Datei entferne, wird alles gut erstellt. Ich dachte immer, wenn die Lizenz nicht gefunden werden könnte, wird die nicht lizenzierte Version verwendet, aber sie würde den Build nicht töten. Wie kann ich diese Lösung dazu bringen, auf einer Maschine aufzubauen, unabhängig davon, ob sie eine Lizenz hat oder nicht?

War es hilfreich?

Lösung 2

Kontaktierte ActiveReports und sie sagten mir, dass für jeden Benutzer eine Lizenzdatei gewartet werden kann, unabhängig davon, ob sie eine kostenpflichtige Lizenz haben oder nicht. Der Trick besteht darin, dass die Benutzer, die keine Berichte generieren, eine Testlizenz (die ActiveReports kostenlos anbietet) installieren müssen, und die Benutzer, die die Lizenz bezahlt haben, verfügen über eine eigene Lizenz. Die Testlizenz wird genau wie die realbezahlte Lizenz mit der lizenz.licx -Datei behandelt und die ordnungsgemäßen Aktionen bereitgestellt, wenn sie einen Eintrag in der .licx -Datei erkennt.

Andere Tipps

Es scheint tatsächlich, als hätte diese Maschine nicht über diese spezifische Version von ActiveReports installiert.

Wir lösen solche Probleme, indem wir externe Baugruppen in einem Pfad relativ zum Projekt (dh .. Assemblies) aufbewahren und alle Projekte so ändern, dass sie einen Hinweispfad enthalten, zum Beispiel:

<Reference Include="ActiveReports3">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\Assemblies\ActiveReports3.dll</HintPath>
</Reference>

Auf diese Weise müssen Sie sich keine Sorgen machen, dass jeder Entwickler genau die gleiche Version installiert hat. Sie sollten in der Lage sein, mit dieser Konfiguration zu debuggen, aber nicht zur Veröffentlichung erstellen.

Aktualisieren

Ich habe vergessen, eine andere Praxis zu erwähnen, die wir implementieren: Es sei denn, die Komponente benötigt sie unbedingt (wir haben nur eine, die ich mir von der Spitze meines Kopfes vorstellen kann), speichern wir nie Versionen in der lizenz.licx -Datei. Unsere Lizenzen.LICX -Eintrag für das obige Beispiel lautet:

DataDynamics.ActiveReports.ActiveReport3, ActiveReports3

Wenn Sie dies tun, müssen Sie die lizenzieren.licx -Datei aufhalten, aber es wird definitiv verschiedene Versioningprobleme gelöst.

Wenn ich die Lösung auf einer Maschine baue, die keine Lizenz für ActiveReport habe, bekomme ich

Dies ist Teil des Problems. In der Regel muss jeder Entwickler eine Lizenz haben. Der Versuch, nur einen Teil Ihres Entwicklungsteams zu lizenzieren, verstößt wahrscheinlich gegen Ihre ActiveReports -Lizenz.

Es sollte vollkommen in Ordnung sein, eine Testversion von ActiveReports so zu verwenden, wie Sie beschreiben. Ich habe eine Reihe von Problemen mit der Lizenzierung von Visual Studio mit verschiedenen Komponenten gesehen. Normalerweise können sie mit den folgenden Schritten gelöst werden:

  • Reinigen Sie die Lösung mit Build> Reinigen
  • Löschen Sie die LICX -Datei (Visual Studio generiert diese Datei nach Bedarf).
  • Fügen Sie einem Formular in Ihrem Projekt eine Arviewer -Steuerung hinzu (Sie können es später erneut löschen). Dies erfordert auf einer Maschine mit einer gültigen ActiveReports -Lizenz. Und das sollte die LICX -Datei auslösen, die mit den richtigen Informationen regeneriert werden soll.
  • Wiederaufbau (stellen Sie sicher, dass Sie einen echten Wiederaufbau machen, ich weiß, dass dies ein sauberer+Build sein soll, aber der Wiederaufbau scheint manchmal wichtig zu sein).

Ansonsten überprüfen Sie nur, ob Ihre Referenzen alle korrekt sind. Stellen Sie beispielsweise sicher, dass Sie nicht mehrere Versionen von DLLs in verschiedenen Projekten innerhalb der Lösung haben, und stellen Sie sicher, dass "Lokal kopieren" und "bestimmte Version verwenden", wie Sie es erwarten.

Wenn Sie weiterhin Probleme haben, ein neues Projekt zu erstellen, fügen Sie ActiverePors (oder welche Komponenten, mit denen Sie Probleme haben) zu erstellen, und machen Sie eine schnelle "Hallo -Welt" -Stil -App, um sicherzustellen, dass sie korrekt funktioniert, und vergleichen Sie die beiden Projekte (Referenzen, Dateien, Dateien, etc.).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top