2010-11-18 21 views
0

J'ai un problème très étrange que je ne peux pas résoudre et je ne sais pas ce qui se passe ... J'utilise VS 2010 Premium et .NET 4.0.System.Design ne peut pas être référencé dans la bibliothèque de classes?

Voici mes étapes pour simuler le problème.


Étape 1. Créez un nouveau projet de bibliothèque de classe VB nommée "MyClassLib"

Étape 2. Créez une nouvelle classe nommée "MyTestingClass".

Public Class MyTestingClass 
    Inherits System.ComponentModel.Design.CollectionEditor 

    Public Sub New() 
     MyBase.New(GetType(List(Of String))) 
    End Sub 

End Class 

Étape 3. Ajoutez deux références .net. "System.Design" et "System.Drawing".

Étape 4. Créer une nouvelle application console VB nommée "MyClassExe"

Étape 5. Ajouter "MyClassLib" référence à "MyClassExe".

Étape 6. Ouvrez Module1.vb dans "MyClassExe" projet

Étape 7. Dans la méthode principale, le type

Dim a = New MyClassLib.MyTestingClass() 

Étape 8. Essayez de compiler "MyClassLib". Cela n'a pas de problème.

Étape 9. Essayez de compiler "MyClassExe". Il ne peut pas compiler parce que le WHOLE MyClassLib ne peut pas être trouvé !!!


Je n'ai aucune idée de ce qui se passe?

De plus, le même cas se produit en C#.

Est-ce que quelqu'un sait quel est le problème avec "System.Design"?

Merci !!!

+0

Quelle erreur obtenez-vous? – SLaks

+0

Le type ou le nom de l'espace de noms 'MyClassLib' est introuvable (vous manque une directive using ou une référence d'assembly?) –

Répondre

4

Ajoutez une référence à System.Design dans le projet de console.

Vous ne pouvez pas utiliser une classe si elle hérite d'une classe dans un assembly que vous n'avez pas référencé.

+0

Impossible d'ajouter System.Design au projet de console. Dans la liste de références .net, il n'y a aucun assembly System.Design. J'ai également essayé d'ajouter '' dans le fichier de projet directement, cela ne fonctionne pas non plus. –

+10

@Alex: Remplacez le framework cible EXE par .Net 4.0 Full. – SLaks

+0

oooo vraiment merci !!!! Problème résolu!!! Mais pourquoi le framework par défaut est ".NET Framework 4 Client Profile"? –