J'ai un de ces problèmes ennuyeux où quelque chose qui travaillait auparavant a cessé de fonctionner. Consultez ce code:ASP.NET - Comment arrêter les classes/dll d'un projet en cours de compilation dans un autre projet
Assembly _abc_assembly = Assembly.LoadFile(“c:\junk\abcabstract\bin\abc.dll”);
ABC.ContentAttribute attribute;
attribute = (ABC.ContentAttribute)_abc_assembly.CreateInstance("ABC.TextAttribute");
ContentAttribute est défini dans la dll. Évidemment, cela devrait fonctionner. Vous devriez être capable de lancer un objet sur lui-même.
Mais il produit cette erreur:
alt text http://www.yart.com.au/stackoverflow/compile1.png
Ce bug est discuté ici http://www.yoda.arachsys.com/csharp/plugin.html qui est la façon dont je suis même loin. De ce post, je comprends que la classe ContentAttribute est en quelque sorte se terminant par ABC.DLL et la DLL du projet de site Web.
Le projet de site je ressemble à ceci:
alt text http://www.yart.com.au/stackoverflow/compile2.png
Maintenant ContentAttribute est pas dans ce projet, il est dans le ABC.DLL dll. Vous pouvez voir cela comme j'ai développé chaque branche et le fichier ContentAttribute.cs n'est pas là. Pourtant, il se trouve en quelque sorte dans la DLL pour le site Web créant une référence de duplication. ContentAttribute se termine en quelque sorte dans ABC.DLL et la DLL du projet de site Web.
Quelqu'un peut-il me dire:
a) Pourquoi est-ContentAttribute en deux dll? Je ne pensais pas inclure une DLL dans un projet forcé ce code dans la DLL des projets.
b) Comment empêcher que cela se produise? En passant, je ne veux définitivement pas changer le projet de site Web en une application de site Web si je peux l'éviter.
Notes:
Suppression des fichiers temporaires ASP.NET ne fonctionne pas. Dès que je compile mon projet de site Web, ils sont recréés.
alt text http://www.yart.com.au/stackoverflow/compile3.png
je pourrais jurer ne se produisait pas il y a un jour. Il n'y a pas encore de vraie architecture ici, c'est un projet de test, j'en ai juste besoin pour travailler! – Petras
Pourquoi avez-vous besoin de charger l'assemblage en utilisant le chemin complet? J'ai ajouté du code qui crée une instance ContentAttribute sans réflexion. –
Je dois examiner les classes en utilisant la réflexion et renvoyer certains types à un type de base lorsque j'effectue certaines opérations. Le code ci-dessus n'est pas réaliste mais indique clairement le problème. – Petras