2016-06-15 38 views
17

SonarQube dispone di un runner MSBuild, ma .NET Core utilizza dotnet.exe per compilare e msbuild lo racchiude. Ho provato a utilizzare MSBuild runner senza successo con la mia soluzione ASP.NET Core. L'uso di SonarQube Scanner funziona in modo simile.Esecuzione di SonarQube su una soluzione/progetto ASP.Net Core

Qualche suggerimento su come utilizzare SonarQube con .NET Core? L'analisi del codice statico è ciò che sto cercando.

+0

Dato che non sono riuscito nemmeno a utilizzare Visual Studio per analizzare il codice, suppongo che dovremo solo aspettare e sperare per la versione 1.1 quando msbuild verrà nuovamente utilizzato ... – peter

+0

ad oggi, se si costruisce usando msbuild con xproj, si tratta solo di racchiudere la chiamata a dotnet build. Questo non consente alle regole SQ di seguirlo e quando il runner di msbuild lo avvia come se non fosse successo per esso. – baywet

+0

scavando intorno non è nemmeno possibile usare sonarlint per legare i progetti di base di asp.net e far funzionare l'analisi statica in VS. Immagino che dovrebbero implementare un nuovo runner + adattare l'attuale plugin sonarlint. – baywet

risposta

1

Sembra NET Nucleo sta passando da project.json utilizzare .csproj e MSBuild. Potrebbe essere disponibile in .NET Core 1.1 o simile. A quel tempo potrebbe essere possibile utilizzare MSBuild per creare progetti e far ritirare SonarQube.

See: https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/

sia che si tratti di una cosa buona o no resta da vedere immagino.

anche vedere questo link per una possibile soluzione per utilizzare MSBuild per costruire progetti core .NET nel frattempo (non ho ancora testato): https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild

Il Core utensili .NET sta per passare da project.json ai progetti basati su MSBuild. Ci aspettiamo che la prima versione degli strumenti .NET Core che usa MSBuild venga spedita insieme alla prossima versione di Visual Studio. Tuttavia, oggi è possibile utilizzare MSBuild per i progetti .NET Core e questa pagina mostra come.

+0

sembra che l'ultima cosa in dot net core sia project.json per sviluppatore non Visual Studio, + xproj per sviluppatori visual studio, + csproj se stai facendo progetti tipo cupola (come xamarin o così) https: // github .com/aspnet/Home/issues/1451 – baywet

+0

collegamento alla documentazione che indica che i progetti "speciali" utilizzano csproj https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore- with-msbuild – baywet

2

Con Csproj ora essere i de-facto format di .Net core soluzioni, supporto SonarQube di tali soluzioni viene fornito con il SonarQube Scanner for MSBuild v2.3.

+0

C'è una parte importante di informazioni mancante nei documenti. Qual'è la versione di MSBuild da collegare? Per me, il mio progetto era .NET 4.6.1 usando MSBuild 15.0. Avevo solo bisogno di impostare correttamente MSBuild usando il nuovo PATH. Io ero così. –

0

Sono riuscito a ottenere le build di .NET Core funzionanti dal the procedure on their site, con due cose che vorrei sottolineare & hellip ;.

  • Quando si esegue le linee SonarQube.Scanner.MSBuild.exe di comando, si deve trovarsi nella stessa directory del file di progetto, e la directory posizione del comando di fine deve corrispondere l'inizio.
  • Quando le istruzioni dicono che è necessario modificare sonar.host.url in modo che punti al server, è necessario aggiungere all'intera sezione del file prima di apportare la modifica. Altrimenti hai appena inserito il tuo server in una riga sonar.host.url che è morta perché è stata commentata. Questo mi ha fatto girare per un po 'prima che davvero guardassi & hellip ;.