Impossible de charger le fichier ou l'assembly dans Visual Studio 2012, C#
Je suis en train de travailler sur un code C# sur Visual Studio 2012 sur Windows 7. Ma solution contient plusieurs projets.
J'ai récemment ajouté un nouveau projet dans ma solution, et a ajouté la dll de ce nouveau projet dans les références des 2 autres projets de la solution (l'un étant le démarrage du projet). Le nouveau projet lui-même fait référence à plusieurs autres projets qui ne sont pas inclus dans ma solution.
Construction de projets de la solution fonctionne bien, mais lorsque j'essaie d'exécuter le programme (en Debug ou Release) j'obtiens une erreur. Voici le message d'erreur:
System.IO.FileNotFoundException was caught
HResult=-2147024894
Message=Could not load file or assembly 'ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Source=NP
FileName=ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
FusionLog==== Pre-bind state information ===
LOG: User = MyCompany\MyName
LOG: DisplayName = ABCD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : NP, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\MyName\Documents\Visual Studio 2012\Projects\MyProgram\Analysis\bin\Debug\Analysis.vshost.exe.Config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD.DLL.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD/ABCD.DLL.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD.EXE.
LOG: Attempting download of new URL file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/ABCD/ABCD.EXE.
StackTrace:
at NewProject.DATA.SetType(NP np, String code, OrderType orderT, MODEL MODELv)
at NewProject.DATA.SetData(NP np, String no, String type, String law, String time, OrderType orderT, MODEL MODELv)
InnerException:
Analyse est mon projet de démarrage.
NewProject est le projet que j'ai ajouté récemment à ma solution.
ABCD.dll référencé dans NewProject, mais le projet ABCD n'est pas une partie de la solution elle-même.
Dans cette erreur, il est dit que le AppBase est file:///C:/Utilisateurs/Nomutilisateur/Documents/Visual Studio 2012/Projets/MyProgram/Analyse/bin/Debug/
Cependant, quand je regarde les ABCD de référence dans NewProject, il dit:
Assembly ABCD
C:\Users\MyName\Documents\Visual Studio 2012\Projects\np\bin\ABCD.dll
En effet, ABCD.dll dans pas dans la AppBase adresse écrite dans l'erreur. Mais je n'ai jamais dit qu'il était là, et je ne comprends pas d'où cela vient.
J'ai essayé de mettre ABCD.dll dans le AppBase l'adresse de l'erreur est de me donner. Mais chaque fois que j'reconstruire NewProject et (puis) mon projet de démarrage de l'Analyse, ABCD.dll disparaît de C:/Users/MyName/Documents/Visual Studio 2012/Projets/MyProgram/Analyse/bin/Debug/
Je suis assez nouveau dans Visual Studio. Je l'ai probablement fait quelque chose de mal lors de l'ajout de mon nouveau projet, mais je ne peux pas comprendre ce que c'est. Si l'un de vous a une idée en ce qui concerne la méthode pour résoudre ce problème, s'il vous plaît n'hésitez pas à en parler !
OriginalL'auteur Lez | 2013-08-27
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin de références entre les projets, puis ajouter le Projet de "références" au lieu de référencer les fichiers DLL. Si vous avez vraiment besoin de faire référence à un fichier DLL, puis:
1) Créer un "Bibliothèques" (ou quelque chose) dossier de votre projet.
2) Copier le référencés DLL dans ce dossier.
3) Dans VS, utilisez la fonction "Ajouter un élément existant" pour ajouter le fichier DLL pour le projet. Dans le fichier en choisissant boîte de dialogue, vous devez modifier le fichier de filtre à
*.*
la DLL à apparaître.4) Sous les propriétés de cette DLL nœud choisissez "Copier si plus récent" dans l'option de compilation.
5) Ajouter une référence à la DLL fichier dans les "Bibliothèques" du répertoire.
Références entre les projets sont bien sûr mieux, parce que vos reconstruire vos références sont mises à jour automatiquement. Sinon, vous devez remplacer le fichier DLL avec un nouveau chaque fois que vous souhaitez mettre à jour la référence.
Vous ajoutez une DLL à l'aide de "Ajouter un élément existant" dans le dossier "Bibliothèques" dans votre projet. Pour les DLL apparaissent changer le filtre dans le coin en bas à droite de . ou *.dll (par défaut, il ne cherche que les fichiers de code à ajouter). Après cela, vous serez en mesure de choisir "Copier si plus récent option". De cette façon, votre fichier DLL seront copiés avec le fichier exe vous permettant d'exécuter le projet.
Yep, ça a fonctionné. Je vous remercie.
OriginalL'auteur BartoszKP