2010-06-07 16 views
1

Jésus, Krishna, Budda!Aventures sur Enterprise Library 5.0: Qui a déplacé mon fromage (espace de noms)

J'ai migré vers EntLib 5.0, mais les classes comme ISymmetricCryptoProvider ne sont plus reconnues. C'est marrant de dire que Data, Logging et d'autres blocs fonctionnent bien.

est ici la classe problématique:

using System; 
using System.Collections.Generic; 
using System.Text; 
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;//-->it's not working anymore 
using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;//-->it's not working anymore 

namespace MyClassLibrary.Security.EnterpriseLibrary 
{ 

    public sealed class Crypto 
    { 

     public static ISymmetricCryptoProvider MyProvider 
     { 
      get 
      { 
       //IConfigurationSource is not recognized either, neither SystemConfigurationSource 
       IConfigurationSource cs = new SystemConfigurationSource(); 
       SymmetricCryptoProviderFactory scpf = new SymmetricCryptoProviderFactory(cs); 
       ISymmetricCryptoProvider p = scpf.CreateDefault(); 
       return p; 
      } 
     } 

Les références sont très bien sur le projet aussi. Je ne sais vraiment pas pourquoi ce projet particulier cause trop de problèmes sur le VS2010! références plus anciennes ont été supprimés, le projet a été nettoyé, reconstruit, mais ne peut le compiler :-(

Les références sont:

Microsoft.Practices.EnterpriseLibrary.Common 
Microsoft.Practices.EnterpriseLibrary.Logging 
Microsoft.Practices.EnterpriseLibrary.Logging.Database 
Microsoft.Practices.EnterpriseLibrary.Security 
Microsoft.Practices.EnterpriseLibrary.Security.Cryptography 

Pourquoi certains espaces de noms peuvent être trouvés tandis que d'autres ne peuvent pas

Répondre

0

Partage de la ligne de commande lors de la construction (fenêtre de sortie, ligne de commande csc.exe avec tous les -r pour voir quelles références vont au compilateur) Cela peut suggérer le problème

+0

je remarquai que sur la fenêtre de sortie montre: Compile complète - 3 erreurs, 0 avertissements C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): warning MSB3245: Impossible de résoudre cette référence. Impossible de localiser l'assembly "Microsoft.Practices.EnterpriseLibrary.Common, Version = 4.1.0.0, Culture = neutre, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL". Vérifiez que l'assemblage existe sur le disque. Si cette référence est requise par votre code, vous risquez d'obtenir des erreurs de compilation. –

+0

cette version 4.1.0.0 n'est pas installée et je ne vois aucune référence dans ce fichier .targets. La DLL n'existe pas, elle n'est pas référencée et je ne sais pas pourquoi VS2010 affiche ce message. –

+0

Qu'est-ce que le fichier .csproj sous-jacent a listé comme l'élément '' ici? Cela ressemble à quoi que ce soit, c'est faux. Peut être utile pour publier l'ensemble du fichier .csproj pour aider à diagnostiquer. – Brian

2

Basé sur les références 4.1 que vous avez, vous faites toujours référence à la bibliothèque d'entreprise 4.1 assemblages. Vous devez supprimer ces références et ajouter des références aux assemblys Enterprise Library 5.0.

Le bloc de cryptographie doit être utilisable tel quel sans modification de votre code. Assurez-vous également de mettre à jour les "références" dans tous vos fichiers de configuration.