[Débutant Visual Studio] Could not load file or assembly

Could not load file or assembly [Débutant Visual Studio] - C#/.NET managed - Programmation

Marsh Posté le 28-08-2013 à 12:25:29    

Bonjour à tous,
 
Je travaille actuellement sur un code C# sur Visual Studio 2012 sous Windows 7. Ma solution contient plusieurs projets.
 
J’ai récemment ajouté un nouveau projet à ma solution, et ajouté la dll de ce nouveau projet dans les références de deux autres projets de ma solution (l’un d’entre eux étant le Startup project). Le nouveau projet lui-même a pour référence aux dll de plusieurs autres projets qui ne sont pas inclus dans ma solution.
 
La compilation de mes projets fonctionne, mais lorsque je veux démarrer le programme (en mode Debug ou Realease) j’obtiens une erreur. Voici  l’erreur en question:
 

Citation :

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:


Analysis est mon startup project.
NewProject est le projet que j’ai récemment ajouté à ma solution.
ABCD.dll est référencé dans NewProject, mais le projet ABCD ne fait pas partie de ma solution.
 
Dans cette erreur, il est écrit que l’AppBase est : file:///C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/
 
Pourtant lorsque je regarde la référence ABCD dans NewProject, il est écrit:

Citation :

Assembly ABCD
    C:\Users\MyName\Documents\Visual Studio 2012\Projects\np\bin\ABCD.dll


Effectivement, ABCD.dll n’est pas dans l’adresse AppBase indiquée dans l’erreur. Mais je n’ai jamais dit qu’elle y était, et je ne comprends pas pourquoi le programme la cherche là.
 
J’ai essayé de mettre ABCD.dll à l’adresse AppBase indiquée dans l’erreur. Mais à chaque fois que je rebuild NewProject et (puis) mon startup project Analysis, ABCD.dll disparait de C:/Users/MyName/Documents/Visual Studio 2012/Projects/MyProgram/Analysis/bin/Debug/
 
Visual Studio est nouveau pour moi. J’ai probablement fait une erreur en ajoutant mon nouveau projet, mais je ne sais pas d’où elle vient. Si l’un de vous a une idée quant à la manière de résoudre mon problème, surtout n’hésitez pas à m’en faire part ! Et merci d'avance pour votre aide.

Reply

Marsh Posté le 28-08-2013 à 12:25:29   

Reply

Marsh Posté le 28-08-2013 à 14:34:31    

Pas sûr que cela règle ton problème, mais déjà, à l'intérieur d'une solution Visual Studio, lorsque tu souhaites référencer un projet depuis un autre projet, il vaut mieux (en tout cas je fais toujours comme ça et n'ai jamais eu de problème) référencer le projet plutôt que la dll.

 

Dans la fenêtre d'ajout de référence, il y a une section "Solution".

 

Si tu regarde le stackTrace, c'est bien dans NewProject que l'erreur se produit.

 

En gros, quand tu compile Analysis, on dirait qu'il copie bien NewProject.dll dans le répertoire, mais pas les dépendances de newproject.

 

Est ce que dans le répertoire bin/Debug de NewProject tu as bien le fichier ABCD.dll?

 

Je pense qu'en référençant NewProject comme je t'ai indiqué, cela devrait fonctionner.


Message édité par x1fr le 28-08-2013 à 14:35:05

---------------
Origin / PSN / Steam / Uplay : x1fr - bnet : Fab#2717
Reply

Marsh Posté le 29-08-2013 à 10:23:16    

Dans ce cas là je ne devais pas référencer le projet directement car il est mis à jour en parallèle par une autre personne.  
 
ABCD.dll n'apparaissait pas dans Analysis/bin/Debug lors de la compilation. En rajoutant ABCD.dll dans les Resources du projet Analysis, le problème a été corrigé.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed