2

J'ai créé une classe VB.NET et créé une clé forte et l'ai ajoutée au GAC en utilisant le GacUtil. Cette partie s'est bien passée. L'assemblage est installé dans le GAC et semble être installé/configuré correctement. FYI, l'assembly est une classe appelée Tester, qui expose une méthode statique publique appelée HelloWorld, qui renvoie une chaîne, "Hello World".Comment ajouter la classe VB.NET à GAC et l'utiliser dans Code-Behind

L'étape suivante consistait à créer une application Web de test (VB.NET et ASP.NET 2.0) à l'aide de Visual Studio 2005, Windows XP SP3. J'ai créé l'application Web de test et ajouté ce qui suit à la section de configuration du fichier web.config.

<assemblies> 
<add assembly="BenGACTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3e5b6cecb56999ca" /> 
</assemblies> 

Je puis ajouté un code en ligne sur ma page ASPX comme suit:

<div><%=BenGACTest.Tester.HelloWorld()%></div> 

Quand je lance la page dans le navigateur web, en effet tout fonctionne comme prévu. La page affiche "Hello World" et tout semble bien.

Cependant, je ne sais pas comment utiliser ce code dans la page code-behind. J'essaie d'importer l'assemblage, tout comme "importe le système" et il n'apparaît pas dans IntelliSense.

Également, lorsque j'essaie d'ajouter l'assembly en tant que référence au projet, l'assembly ne figure pas dans la liste des assemblys installés. Je crois que c'est parce que la liste est tirée du registre, pas d'une liste dynamique des assemblages installés.

Mon but est d'ajouter l'assembly via le fichier web.config, non en l'ajoutant en tant que référence de projet, et d'utiliser l'assembly dans la page code-behind.

Des idées?

+0

mon mauvais, n'a pas lu les deux derniers paragraphes. vous pouvez utiliser le dossier bin ou jeter un coup d'oeil ici si cela ne vous dérange pas de référencer le GAC en dehors de web.config: http://weblogs.asp.net/jdanforth/archive/2003/12/16/43841.aspx – daddywoodland

Répondre

4

Vous pouvez simplement référencer une version locale pour utiliser la DLL dans Visual Studio, .NET favorisera la version GAC lors de l'exécution de l'application. En outre, je ne crois pas que vous devez expédier la DLL quand elle est disponible dans GAC, mais vous devez le référencer par le menu Projet-> Ajouter une référence.

Modifier: Ce forumpeut être utile: http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/63bf8d34-42ad-4f3c-b0c9-cf7c33d77918.

+0

Je voudrais éviter d'ajouter une référence manuellement. D'autant plus que l'ajout de l'assembly via le fichier web.config et l'utilisation du code dans une page aspx via inline vb fonctionne bien. Comment puis-je utiliser le code en ligne, mais pas dans le code behind? – NJITBEN

+0

L'application doit être consciente que l'assembly doit être référencé, il suffit donc de référencer le projet. Vous n'avez pas besoin de redistribuer les DLL ou quelque chose, alors quel est le problème? –

Questions connexes