2017-06-29 4 views
0

Ich versuche, dotnet watch jedoch meine Projekt-Referenzen nuget-Paket zu verwenden, die $ (SolutionDir) verwendet, um einige Dateien in prebuild Ereignis zu kopieren. Es macht Sinn, da dotnet watch auf Projektebene läuft, so dass $ (SolutionDir) nicht existiert. Gibt es eine Möglichkeit, dotnet watch für die gesamte Lösung auszuführen?

+0

Ist das wonach Sie suchen? https://stackoverflow.com/questions/3439060/how-can-i-evaluate-vs-build-command-makros –

+0

@SurajS es wird $ (SolutionDir) Wert angezeigt, aber ich weiß, es ist null. Wie würde es in meinem Szenario helfen? – MistyK

Antwort

1

Ich habe eine Batch-Skript watch.bat

call SET ASPNETCORE_ENVIRONMENT=Development 
call SET SolutionDir=%~dp0\\..\\..\\ 
call dotnet watch run 

Added ein Skript in package.json:

"scripts": { "dotnetwatch": "watch.bat" } 

Jetzt kann ich es wie folgt aus CLI laufen:

npm run dotnetwatch 

oder von innen Visual Studio mit folgenden launchsettings.json Profil:

"dotnet watch": { 
     "executablePath": "watch", 
     "environmentVariables": { 
     "ASPNETCORE_ENVIRONMENT": "Development" 
     } 
    } 

Es ist keine ideale Lösung, aber zumindest ist es gut genug für mich.

0

Ab dotnet-watch 2.0.0-preview2 ist es nicht möglich, dotnet watch auf Lösungsdateien auszuführen. Sie können jedoch ein benutzerdefiniertes "Projekt" für den Beobachter erstellen, der mehrere Projekte überwacht. Ein vollständiges Beispiel dafür finden Sie unter https://github.com/aspnet/DotNetTools/tree/rel/2.0.0-preview2/samples/dotnet-watch/WatchMultipleProjects.

+0

es beantwortet meine Frage nicht wirklich. In meinen Projekten muss ich die Eigenschaft $ (SolutionDir) definiert haben. Mit msbuild kann ich einfach msbuild/p: SolutionDir = was auch immer machen, aber in dotnet cli scheint es nicht zu funktionieren. – MistyK