2012-03-10 18 views
7

Quando provo il modo standard si lamenta di un riferimento non supportato e non riesco a utilizzare nessuna delle mie classi.Come si fa riferimento a una libreria di classi C# da un'applicazione metropolitana Javascript Win8?

+1

Che tipo di libreria di classe C# è questa? È indirizzato a .NETCore? Produce un. Winmd? –

+2

Per essere più specifici, quando si crea il progetto della libreria di classi, assicurarsi di utilizzare il modello sotto "Stile Windows Metro" piuttosto che solo "Windows" - in questo modo si otterrà il .winmd e tutto il resto necessario per questo lavoro. Non è possibile fare riferimento a un progetto di libreria di classi vanilla in questo modo. –

+1

Oltre al tipo di libreria di classi specifico Metro, è anche possibile creare un progetto Libreria portatile che può essere utilizzato su Metro e .NET standard (supporta anche Silverlight e WP7) ma consente solo il sottoinsieme di funzionalità comune tra le piattaforme selezionate . –

risposta

4

È necessario creare un componente di Windows Runtime creando una libreria di classi dal modello "Visual C#" -> "Windows Metro Style" -> "Class Library". Poi nelle proprietà per quel progetto di libreria di classi è necessario marcare il tipo di uscita come "WinMD sul file"

istruzioni migliori possono essere trovate qui:

http://msdn.microsoft.com/en-us/library/windows/apps/hh779077(v=vs.110).aspx

questo non è indicato nella documentazione e è probabilmente solo un bug con Windows 8 Consumer Preview e Visual Studio 11 Beta ma assicurati di non includere un punto nel nome del progetto a cui stai facendo riferimento. Ad esempio, stavo lavorando su un'applicazione per auto, quindi ho creato un assembly chiamato "Car.Business". L'applicazione si arresta sempre in modo anomalo con una schermata di avvio vuota ogni volta che provo a fare riferimento a questo. Se d'altra parte ho appena usato "Business" come nome dell'assembly, l'applicazione funzionerebbe correttamente.

Problemi correlati