Per la mia tesi di master sto costruendo un plug-in di Visual Studio che dovrebbe eseguire alcune analisi del codice della soluzione aperta corrente. Per farlo ho deciso di provare a usare Roslyn, usando lo corresponding nuget package.Utilizzare Roslyn MSBuildWorkspace con Visual Studio 2013
Tutto funziona bene (SyntaxTree per la navigazione del codice, ...) fino a quando ho provato ad usare MSBuildWorkspace.Create().
Questa ultima chiamata fa sì che la seguente eccezione:
Impossibile caricare il file o l'assembly 'Microsoft. Build, Version = 14.0.0.0, Culture = neutro, PublicKeyToken = b03f5f7f11d50a3a 'o una delle sue dipendenze . Il sistema non riesce a trovare il file specificato . ":" Microsoft.Build, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a
ho trovato questi due post:
- Creating new Microsoft.CodeAnalysis.CustomWorkspace - got ReflectionTypeLoadException
- MSBuildWorkspace.Create() throws exception
da cui ho capito che ho bisogno degli strumenti di MSBuild per Visual Studio 14, che si trova nel rel stato iso.
Non voglio installare Visual Studio 14 completo, anche perché il plug-in che sto scrivendo deve essere eseguito in Visual Studio 2013. Dai due post sembra che sia possibile installare solo questa parte di VS 14.
La mia domanda è in realtà: se installo MSBuild Tools per Visual Studio 14 cosa succederà con tutti gli altri progetti di Visual Studio su cui sto lavorando attualmente? Al momento usano lo strumento MSBuild di Visual Studio 2013. È possibile utilizzarlo ancora?
Aggiornamento
Quello che sto acctually cercando di ottenere è quello di trovare se un dato metodo ha riferimenti all'interno del progetto. L'idea era di procedere come in this post.
I sistemi diagnostici che si integrano con VS saranno accoppiati a VS. Sembra che Roslyn ora richieda VS 14 e l'anteprima VS 13 non è più supportata. È certamente possibile installare più versioni di VS side-by-side ma poiché è CTP, c'è sempre qualcosa che può andare storto. Il solito standard: "Sebbene questi CTP siano pensati per essere installati fianco a fianco insieme alle versioni precedenti di Visual Studio, la completa compatibilità di ogni CTP non è garantita." –
Il fatto che io possa installare versioni VS affiancate diverse (con la solita caldaia standard) è noto a me. Il fatto è che alla fine il plugin dovrebbe funzionare con Wisual Studio 2013. Se, per lavorare con VS 2013, ho bisogno di installare MSBuild di VS 2014 che non è un problema finché i "normali progetti VS 2013" continueranno a essere utilizzati il vecchio MSBuild. – Lando
Come dice Jason, dovresti usare VisualStudioWorkspace e non avrai nessuno di questi problemi. Poiché VisualStudioWorkspace non è documentato, ho scritto una guida ai vari spazi di lavoro qui: http://joshvarty.wordpress.com/2014/09/12/learn-roslyn-now-part-6-working-with-workspaces/ – JoshVarty