Λαμβάνω το σφάλμα
System.IO.FileLoadException : Δεν ήταν δυνατή η φόρτωση αρχείου ή συνέλευσης 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' ή μία από τις εξαρτήσεις του. Το εντοπισμένη συνέλευση'ο ορισμός του δηλωτικού δεν ταιριάζει με τη συνέλευση αναφορά. (Εξαίρεση από HRESULT: 0x80131040)
για τη δική μου κατασκευή CI
Λύση που δοκίμασα
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
Επίσης, δεν λειτούργησε
Αναπτύξτε τη σωστή έκδοση στο μηχάνημα CI
Αυτό σας λέει ότι ο φορτωτής συναρμολόγησης βρήκε μια διαφορετική έκδοση της συναρμολόγησης Newtonsoft.Json
, η οποία δεν ταιριάζει με την αναφορά που δημιουργήσατε στο έργο σας. Για να φορτώσετε σωστά τη συνέλευση, πρέπει είτε να αναπτύξετε τη συνέλευση δίπλα-δίπλα με τον μεταγλωττισμένο κώδικά σας, είτε να εγκαταστήσετε τη σωστή έκδοση της συνέλευσης στο μηχάνημα προορισμού (δηλ. στο GAC).
Εναλλακτική λύση: βεβαιωθείτε ότι η διαμόρφωση βρίσκεται στο σωστό αρχείο
Αν θέλετε να διατηρήσετε την τρέχουσα λύση και να φορτώσετε μια συναρμολόγηση με διαφορετική έκδοση, βεβαιωθείτε ότι η διαμόρφωση που δημοσιεύσατε βρίσκεται στο σωστό αρχείο .config
. Να θυμάστε ότι δεν υπάρχει xpto.dll.config
, ένα DLL που φορτώνεται από μια εφαρμογή χρησιμοποιεί πάντα το αρχείο config της τρέχουσας εφαρμογής.
Στην περίπτωσή μου, μετά τη λήψη της συνέλευσης και την προσθήκη της αναφοράς στο έργο, το έλυσα αυτό με το 'ξεμπλοκάρισμα' του DLL πριν από την προσθήκη της αναφοράς στο έργο.
Χρησιμοποιώντας τον Windows explorer, περιηγηθείτε στη θέση του DLL, κάντε δεξί κλικ στο DLL και στη συνέχεια επιλέξτε 'ιδιότητες'. Θα βρείτε ένα κουμπί 'unblock' σε μία από τις καρτέλες και στη συνέχεια μπορείτε να προσθέσετε την αναφορά και η συναρμολόγηση θα φορτωθεί σωστά.