2010-01-24 11 views
10

C'è un modo per me di creare più progetti utilizzando lingue diverse nell'ambito di 1 soluzione in VS 2008? Se é cosi, come?Progetti VB.Net e C# in 1 Soluzione

+0

Mentre sarebbe stato più facile se l'OP potesse semplicemente provarlo prima di chiedere, non penso che la domanda meriti un voto di -1. Votazione –

+1

In Visual Studio EXPRESS EDITION questo NON è POSSIBILE – Oliver

risposta

5

Come dice Oded, basta crearli. Fai clic con il pulsante destro del mouse sul nodo Solution, selezionando Add > New Project, selezionando la lingua e il tipo di progetto desiderato e assegnandogli un nome.

Le uniche volte che io sappia, quando questo non funziona sono:

  1. Quando l'opzione Always show solution non viene controllato (sotto Tools > Options > Projects and Solutions)

  2. quando non si dispone di entrambe le lingue installate , ad esempio se hai installato Visual Basic 2008 Express Edition senza Visual C# 2008 Express Edition o viceversa, o se hai deselezionato una delle lingue durante l'installazione. Nota che, ad eccezione dell'edizione express, ogni edizione contiene tutte le lingue per impostazione predefinita.

Se si riscontrano problemi, verificare che non si verifichi nessuno dei problemi sopra riportati. Basta controllare l'impostazione Tools > Options e controllare l'elenco Installed products sotto Help > About Microsoft Visual Studio. Se è necessario modificare l'elenco Installed products, è sufficiente rieseguire l'installazione di VS.NET (o l'installazione della versione Express appropriata).

8

Basta crearli. Una soluzione può felicemente contenere progetti di lingue diverse. Ho progetti C# e VB.NET seduti nella stessa soluzione senza problemi.

Quello che non si può fare è mescolare le lingue nello stesso progetto.

+0

È possibile mescolare le lingue nello stesso assembly .NET (compilando moduli diversi con compilatori diversi). Tuttavia, questo scenario non è supportato dall'IDE di Visual Studio ed è quindi abbastanza inutile per tutti gli scopi pratici. –

+0

Se ricordo correttamente, in VS2002 quando si fa clic con il tasto destro del mouse sulla soluzione, c'era un'opzione per aggiungere un progetto di una lingua diversa. Non lo vedo nel 2008. Devo essere cieco o qualcosa del genere. Non riesco a trovare questa opzione ora. Dove vado a fare questo? – StackOverflowNewbie

2

Avrete anche bisogno dell'attributo "CLSCompliant" per ignorare i tipi/membri che non sono compatibili con cls.

Per esempio, se si sta utilizzando C# e progetto VB, è necessario escludere metodi con stessa firma, ma la differenza nel caso in cui (VB non è case-sensitive)

 [CLSCompliant(false)] 
     public static string GetTypeName() { 
      return "SomeBase"; 
     } 

     [CLSCompliant(false)] 
     public static string getTypeName() { 
      return "somBase"; 
     } 
+0

Interessante osservazione sulla differenza tra maiuscole e minuscole tra C# e VB.NET, ma mi auguro che qualsiasi libreria C# ben progettata non ne abbia mai realmente bisogno. Dare a due funzioni lo stesso nome che differiscono solo per caso mi sembra una cattiva pratica, perché diventa molto facile confondere i due quando li chiamano. Nomi diversi o un parametro che specifica esplicitamente quale tipo di valore stringa restituire renderebbe il codice molto più chiaro ed eviterebbe completamente il problema di compatibilità VB.NET. –

Problemi correlati