7
votes

C # - DLL «Ressources» ne doit pas être chargé car il n'existe pas - comment puis-je trouver la référence afin que je puisse le supprimer?

J'ai une solution C # qui épouse un binaire exécutable sur la compilation. Le binaire dépend d'une bibliothèque qui est le produit d'une autre solution que j'ai écrite, tout le code concerné que j'ai créé.

Récemment, j'ai joué avec un certain nombre de paramètres de projet de manière assez au hasard, essayant d'avoir une idée de la manière dont le CLR construisait une fonction de liaison. Malheureusement (prévisible?) J'ai réussi à briser la liaison sur mon binaire, mais je ne sais pas comment résoudre le problème.

  • Quand mon binaire, je reçois les commentaires suivants avant que l'application tombe sur

    Assemblages de chargement ........ ne pouvait pas Ajouter des types d'assemblage My.Library, version = 1.0.0.0, Culture = neutre, PublickeyToken = null - Incapable de charger un ou plusieurs des Types demandés. Récupérer le LoadExceptions Propriété pour plus Informations

    • Le journal de fusion pour la dll My.Library.Resources est ci-dessous. Le binaire mentionné n'existe pas et je ne sais pas où ou pourquoi il essaie d'être chargé.

      > xxx

      • sont des dlls «ressources» implicites? Ou est-ce que j'ai nécessairement une référence à cette DLL? Comment devrais-je trouver la référence dans le SLN de la bibliothèque?

        tl; dr

        • Comment puis-je supprimer une référence à une DLL de ressources non existantes?

0 commentaires

3 Réponses :


0
votes

Normalement, vos DLL référencées doivent figurer dans le dossier Références de votre projet C # (vous devez également ajouter vos dlls externes de là). Vous pouvez cliquer avec le bouton droit de la souris sur la DLL que vous souhaitez lancer et cliquer sur supprimer .


0 commentaires

1
votes

Je viens d'avoir un problème comme celui-là, Visual Studio 2010 n'a pas pu trouver toutes sortes de dlls de ressources, comme xaml.resources.dll et présentationCore.resources.dll. Se passe (à la fin) c'était le résultat de moi en déplaçant le Mainwindow.xaml à un sous-dossier. Je ne sais pas si c'est la même chose avec les formulaires Windows, mais à toute personne qui fait WPF: ne déplacez pas MAINWINDOW.XAML. Un autre jour de ma vie gaspillée.


0 commentaires

3
votes
  • sont des dlls «ressources» implicites? Ou ai-je nécessairement une référence à cette dll? Comment devrais-je trouver la référence dans le SLN de la bibliothèque?
  • Comment puis-je supprimer une référence à une DLL de ressources non existantes?

    Les résines sont en réalité intégrées dans votre DLL. Vous n'avez pas besoin de le référencer.
    La raison pour laquelle vous voyez "bibliothèque.resouce" est que votre code demande à .NET de charger l'assemblage manuellement, que ce soit app.config ou AppDomain.assemblyResolve .

    Dans votre cas, je pense que c'est ce dernier. Trouvez simplement ce gestionnaire d'événements et faire quelque chose comme ceci: xxx

    Le code est en C ++ \ cli mais il est facile de traduire en c #.


0 commentaires