È possibile collegarsi al processo di compilazione di Roslyn durante una build di Visual Studio/TFS e, in caso affermativo, è possibile ottenere una sospensione di Microsoft.CodeAnalysis.Solution/Microsoft.CodeAnalysis. Istanza del progetto utilizzata da Roslyn durante la compilazione?Collegamento al processo di compilazione di Roslyn
risposta
Per come la vedo io, Jon ha ragione nel suo commento. Quello che vorrei suggerire è creare un task MSBuild, che è il tuo hook preferito nel processo di compilazione.
Creare un file di progetto MSBuild (probabilmente li avete già visti, sono quei file che hanno l'estensione). Sembra qualcosa di simile:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="MyNamespace.MyReferenceValidationTask" AssemblyFile="MyPath\MyNamespace.dll"/>
<Target
BeforeTargets="BeforeCompile"
Name="ValidationTarget">
<MyNamespace.MyReferenceValidationTask
SolutionRoot="$(SolutionDir)" />
</Target>
</Project>
L'attributo nel "MyNamespace.MyReferenceValidationTask" tag "SolutionRoot" è la vostra proprietà nel vostro compito. Tutti i macro disponibili in Visual Studio sono disponibili anche qui. (vedi questo post qui: https://stackoverflow.com/a/1453023/978594)
Ciò che fai all'interno del compito dipende interamente da te. Ad esempio, è possibile caricare il file della soluzione con Roslyn e quindi disporre di tutti i progetti e dei relativi riferimenti e effettuare la convalida desiderata.
- 1. .NET processo di costruzione e collegamento
- 2. Modifica codice sorgente in fase di compilazione con Roslyn
- 3. La compilazione di Roslyn non risolve i riferimenti mscorlib
- 4. File di intestazione C e compilazione/collegamento
- 5. Console Xcode vuota dopo il collegamento al processo
- 6. Includere una risorsa incorporata in una compilazione realizzata da Roslyn
- 7. Aggiungi il modificatore di accesso al metodo utilizzando Roslyn CodeFixProvider?
- 8. Passaggio del compilatore C# di Roslyn
- 9. D Processo di creazione
- 10. Roslyn tempo di avvio lento
- 11. Microsoft Roslyn vs. CodeDom
- 12. Come funziona il processo di compilazione di Android?
- 13. Collegamento edizione con "la definizione multiplo di" errore di compilazione
- 14. AngularJS: funzioni di compilazione e collegamento di ng-repeat
- 15. Generazione CSS Sprite nel processo di compilazione gradle?
- 16. dipendenze della libreria collegamento nodo-gyp in fase di compilazione
- 17. indefinito riferimento al processo (std :: __ cxx11 :: basic_string ...) durante la compilazione applicazioni di esempio Linux affdex
- 18. Un processo di compilazione automatizzata dovrebbe commettere modifiche al controllo versione?
- 19. Aggiunta data di compilazione al codice
- 20. Come partecipare al processo di standardizzazione C?
- 21. Utilizzo di Roslyn in F #
- 22. È necessario generare javadoc come parte del processo di compilazione?
- 23. Cosa si usa per un processo di compilazione complesso?
- 24. Come posso imparare a configurare un processo di compilazione?
- 25. Code Signing come parte del processo di compilazione
- 26. Esegui script utilizzando Browserify senza processo di compilazione prima
- 27. Genera proxy WCF come parte del processo di compilazione
- 28. Grandi progetti Android: come velocizzare il processo di compilazione?
- 29. Processo di compilazione non riuscito: istruzione sconosciuta: ARG
- 30. Collegamento al sito admin di django
Sarebbe più semplice aiutarti se diresti cosa stai cercando di ottenere. Ad esempio, è possibile aggiungere la diagnostica del codice in modo relativamente semplice. –
@Jon: Voglio fare alcune convalide di riferimento (ad esempio progetti che non dovrebbero fare riferimento ad altri progetti) sui progetti in costruzione, quindi ho bisogno di ottenere l'istanza di Microsoft.CodeAnalysis.Solution in fase di compilazione. – dotarj
Giusto. Sembra che potrebbe essere qualcosa di meglio mirato a un compito di MSBuild rispetto a Roslyn ... il che non significa dire che * non è * un modo di farlo a Roslyn, ovviamente. –