ASP .NET de BASE ne pouvait pas trouver le fichier ou l'assembly personnalisé pour le montage
J'ai couru dans un problème bizarre.
En fait j'ai mon propre site web de pile pour .NET-de base que j'ai construit en un peu .dll, et je veux faire référence à ces à partir d'un autre ASP CORE-solution.
VS semble y trouver les assemblées, où je peux naviguer types etc.
Je peux aussi construire le projet, sans aucun problème, mais quand IIS s'exécute le serveur, j'obtiens une erreur interne du serveur indiquant:
FileNotFoundException: impossible de charger le fichier ou l'assembly 'madll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null". Le système ne peut pas trouver le fichier spécifié.
Référencés Dll sont dans le debug-dossier, et la chose vraiment étrange, c'est que si je crée un nouveau ASP projet Core à la même solution que la web-pile, je peux de référence et de l'utiliser sans aucun problème.
Pourquoi cela se produit uniquement lors de l'exécution sur un projet à l'extérieur le web-pile de solution, et que puis-je faire pour le rendre exécutable partout?
- Avez-vous configuré votre référence pour être copié dans le dossier de sortie? (voir les propriétés de la référence)
- Oui j'ai essayé ce. Ne pas faire une différence, malheureusement
- Et vous êtes sûr que vous n'avez pas essayé de faire référence à un
net4xx
bibliothèque dans unnetcoreapp1.x
projet? - Affirmative. La bibliothèque et le web-projet cible .NETCoreApp 1.1
- Les bibliothèques ne possèdent généralement pas de cible
netcoreapp1.x
, à l'exception très rare d'exiger .NET seulement le Noyau de l'API qui n'est pas disponible dansnetstandard1.x
. Vous devriez toujours essayer de ciblernetstandard
- Serait-ce faire une différence, mais, depuis la réponse ci-dessous a été la solution. Ne serait-il pas encore un problème avec mon bibliothèques des dépendances?
- Si toutes les bibliothèques de l'utilisation et de la cible
netstandard
il n'y aurait pas de problèmes.netstandard
bibliothèques peuvent être utilisées dansnetcoreapp
's, mais pas l'inverse.netstandard
peut aussi être consommé à partir denet452
alls, maisnetcoreapp
ne peut pas
Vous devez vous connecter pour publier un commentaire.
L' .NET de Base de l'Outillage en VS 2017 (< 15.3 extrait) /.NET CLI < 2.0 ne prend totalement en charge le référencement assemblées sur le disque. Vous avez besoin de paquet de la bibliothèque comme un package NuGet ou utiliser une référence de projet ("solution"). La raison technique, c'est que toutes les assemblées et les versions sont résolus lors de la compilation et de l'écrit à l'
.deps.json
fichier. Lors du chargement d'arbitraire assemblages, cela peut échouer en raison soit de l'assemblée ou de ses dépendances ne peut pas être trouvé (ou un conflit les uns avec les autres).pour charger le
external dll
danscore
projet, nécessaire pour:Microsoft.Extensions.DependencyModel
NuGet package installé dans votre projet.