Domanda

In una soluzione VS2010 Ho un file license.licx che contiene:

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

Se io costruisco la soluzione su una macchina che ha una licenza per ActiveReport allora tutto va bene. Se io costruisco la soluzione su una macchina che non dispone di una licenza per ActiveReport ottengo:

Error 1 'Impossibile caricare il file o l'assembly' ActiveReports6, Version = 6.1.2814.0, Culture = neutral, PublicKeyToken = cc4967777c49a3ff' o una delle sue dipendenze. L'operazione non è supportata. (Eccezione da HRESULT: 0x80131515)' LC

Sulla macchina che non dispone di una licenza per ActiveReport se tolgo le righe precedenti dal file license.licx poi tutto costruisce bene. Ho sempre pensato che se la licenza non è stata trovata poi verrà utilizzata la versione senza licenza, ma non avrebbe ucciso la compilazione. Come faccio ad avere questa soluzione di costruire su qualsiasi macchina se ha una licenza o non lo fa?

È stato utile?

Soluzione 2

Contattato ActiveReports e mi hanno detto che un file di licenza può essere mantenuto per ogni utente se hanno una licenza a pagamento o meno. Il trucco è che gli utenti che non sarà la generazione di report è necessario installare una licenza di prova (che ActiveReports fornisce gratuitamente) e gli utenti che hanno pagato per la licenza avrà la propria licenza. La licenza di prova, proprio come il vero licenza a pagamento, si occuperà con il file license.licx e fornirà le azioni appropriate quando vede una voce riconosce nel file .licx.

Altri suggerimenti

In realtà sembra che questa macchina non ha quella versione specifica di ActiveReports installati.

risolvere problemi come questo memorizzando assembly esterni in un percorso relativo al progetto (cioè .. \ assembly) e modificando tutti i progetti ad un HintPath, ad esempio:

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

In questo modo, non c'è bisogno di preoccuparsi di ogni sviluppatore avere la stessa versione installata. Si dovrebbe essere in grado di eseguire il debug con questa configurazione, ma non costruire per il rilascio.

Aggiorna

Ho dimenticato di dire un'altra pratica che abbiamo implementare: a meno che la componente assolutamente lo richiede (abbiamo solo uno che mi viene in mente la parte superiore della mia testa), non abbiamo mai memorizziamo le versioni del file license.licx. Il nostro ingresso licenses.licx per l'esempio di cui sopra è:

DataDynamics.ActiveReports.ActiveReport3, ActiveReports3

Si deve tenere il passo del file licenses.licx se si fa questo, ma risolve definitivamente i problemi delle versioni diverse.

Se io costruisco la soluzione su una macchina che non dispone di una licenza per ActiveReport ottengo

Questa è una parte del problema. In genere, le licenze richiede ogni sviluppatore di avere una licenza. Cercando di licenza solo una parte del vostro team di sviluppo è probabile che in violazione della licenza ActiveReports.

Dovrebbe essere perfettamente bene di utilizzare una versione di prova di ActiveReports il modo in cui si sta descrivendo. Ho visto un certo numero di problemi con la licenza di Visual Studio con i vari componenti. Di solito possono essere risolti utilizzando le seguenti operazioni:

  • Pulire la soluzione utilizzando Corporatura> Pulizia
  • Eliminare il file licx (Visual Studio genererà questo file, se necessario).
  • Aggiungere un controllo ARViewer a un modulo nel progetto (è possibile eliminarlo in un secondo momento). Questo ha bisogno fatto su una macchina con un ActiveReports valida licenza. E questo è quello che dovrebbe far scattare il file licx da rigenerare con le informazioni corrette.
  • Ricostruisci (assicuratevi di un vero e proprio ricostruire, so che si suppone essere un + generazione pulita, ma ricostruire sembra essere a volte importanti).

Oltre a questo, basta verificare i riferimenti sono tutti corretti. Ad esempio, assicurarsi che non si dispone di più versioni di DLL fa riferimento in diversi progetti all'interno della soluzione e assicurarsi che "copia locale" e "Uso specifico Version" sei come previsto.

Se avete ancora problemi di creare un nuovo progetto, aggiungere ActiveReports (o qualsiasi componente che si riscontrano problemi con) e fare un rapido stile "ciao mondo" app per assicurarsi che funzioni correttamente e quindi confrontare i due progetti (referenze , file, ecc.).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top