2012-03-12 10 views
10

Questa domanda here sembra contraria a ciò che ho vissuto. Non riesco ad accedere alla console da una nuova libreria di classi. Ho using System; nella parte superiore. Sto usando Visual Studio 11 su Windows 8. Dubito che questo sia stato perso nell'aggiornamento, quindi ciò significa che sto facendo qualcosa di sbagliato.Console non disponibile nella libreria di classi C#

Inoltre, una volta che funziona, la console è disponibile in una libreria di classi portatile?

EDIT

qui è solo un file di test che ho fatto

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace AdamLib.util.ConsoleSupport 
{ 
    class SafeRead 
    { 
     private void test() 
     { 
      System.Console.Writeline("test"); //Console is not found in system 
     } 
    } 
} 

Questo è nella libreria di classi.

risolto

Come pensavo, è stata colpa mia.

Grazie a @DarinDimitrov, che ha sottolineato che con VS 11 e metropolitana, il supporto della console è stato rimosso per l'utilizzo con la metropolitana. Quindi per risolvere questo ho avuto bisogno di creare un nuovo progetto con il secondo tipo di libreria di classi. Ce ne sono due elencati e io ho usato quello con la descrizione che include metro. Per risolvere il problema, ho dovuto usare l'altro tipo senza la metro nella descrizione.

Grazie ancora a tutto ciò che ha aiutato.

+0

Che messaggio di errore si ottiene? –

+0

Ma il progetto principale è una ConsoleApplication o un Windows Form? – Steve

+0

Ricevo 'Il tipo o il nome dello spazio dei nomi 'Console' non esiste nello spazio dei nomi 'Sistema' (ti manca un riferimento all'assembly?)' E non c'è ancora un progetto principale. Sto solo scrivendo la mia biblioteca di utilità. –

risposta

10

Se hai creato un'applicazione in stile Metro, non c'è Console in WinRT. Non cercarlo come non lo troverai. Questo è spiegato in this article:

Il sottoinsieme di tipi gestiti e membri è stato progettato con una chiara focalizzazione su Metro sviluppo stile app. Di conseguenza, si omette il seguente:

  • tipi e membri che non sono applicabili allo sviluppo di applicazioni in stile Metro (come console e tipi ASP.NET).

  • Tipi obsoleti e legacy.

  • Tipi che si sovrappongono con i tipi di Runtime di Windows.

  • Tipi e membri che racchiudono le funzionalità del sistema operativo (come System.Diagnostics.EventLog e contatori delle prestazioni).

  • Membri che causano confusione (come il metodo Chiudi sui tipi di I/O).

è possibile utilizzare il framework debugging API o registrazione.

+0

Inoltre, a meno che questa classe lib non sia una sorta di componente di visualizzazione, non si vorrebbe scrivere su una console. Scrivi su/il registro. – CrazyDart

+0

È una raccolta di alcune utilità che ho scritto per l'uso con la riga di comando. Quindi ho bisogno di interagire con esso. –

+0

@AdamSchiavone, se è necessario interagire con una console, non creare una libreria di classi WinRT poiché la nozione di Console non esiste nello stile Metro di Windows 8. –

Problemi correlati