none
Could not load file or assembly dans un code en C# sur VS2012 RRS feed

  • Question

  • 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:

    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:

    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 pourtant 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 !

    mardi 27 août 2013 13:39

Réponses

  • Bonjour Lezarkween,

    Normalement après compilation de votre projet Analysis vous devriez avoir les dlls "ABCD.dll" et "NewProject.dll" dans le répertoire de sortie "Analysis/bin/Debug/".

    Si ce n'est pas le cas il faut référencer la dll "ABCD.dll" dans votre projet Analysis de manière à ce que celle-ci se trouve dans le répertoire de sortie.

    Cordialement,

    • Proposé comme réponse Atmeitsatme jeudi 29 août 2013 08:22
    • Marqué comme réponse Aurel Bera jeudi 29 août 2013 09:56
    jeudi 29 août 2013 06:58

Toutes les réponses

  • Bonjour Lezarkween,

    Dans l'explorateur de solution, sur le projet NewProject, si tu regarde les propriétés de la référence "ABCD" , est-ce que la propriété "Copie locale" est égale à True ?

    mardi 27 août 2013 13:49
  • Oui, j'ai Copy Local: True.
    mardi 27 août 2013 14:35
  • Bonjour,

    Cette erreur indique qu'il manque une assembly dans le répertoire ou vous voulez débugger votre application.
    Pour trouver les assembly manquantes, le plus simple est de téléchargez l'outil ILSpy "http://ilspy.net/", d'ouvrir votre exécutable et de regarder ses références et cela de manière récursive jusqu'à trouver l'assembly manquante.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    mardi 27 août 2013 23:15
    Modérateur
  • Bonjour Lezarkween,

    Normalement après compilation de votre projet Analysis vous devriez avoir les dlls "ABCD.dll" et "NewProject.dll" dans le répertoire de sortie "Analysis/bin/Debug/".

    Si ce n'est pas le cas il faut référencer la dll "ABCD.dll" dans votre projet Analysis de manière à ce que celle-ci se trouve dans le répertoire de sortie.

    Cordialement,

    • Proposé comme réponse Atmeitsatme jeudi 29 août 2013 08:22
    • Marqué comme réponse Aurel Bera jeudi 29 août 2013 09:56
    jeudi 29 août 2013 06:58
  • NewProject.dll apparaissait bien and Analysis/bin/Debug, mais pas ABCD.dll.

    Je l'ai ajouté dans les Resources du projet Analysis et maintenant celà fonctionne. Merci.
    jeudi 29 août 2013 08:11