Ho riscontrato un problema con MSBuild
Non riesco a superarlo da solo. Di conseguenza, mi baso sulla saggezza della comunità.In che modo MSBuild crea una destinazione personalizzata specificata in csproj building sln?
La situazione reale che sto avendo problemi con
Ho un file soluiton contenente diversi progetti con dipendenze da altri progetti in stessa soluzione. Vorrei aggiungere un target personalizzato a uno dei file csproj del progetto e crearlo dalla riga di comando. Mi consentirà di creare tutti i binari di output necessari per questo progetto per un'ulteriore elaborazione durante la creazione del target personalizzato. Ma la cosa principale è che non riesco a capire come farlo, googling non aiuta neanche.
Semplificazione
Per rendere più semplice cosa ho deciso di fare un nuovo progetto di console C#, aggiungere un semplice obiettivo personalizzato per il file del progetto e cercare di renderlo costruire. Ancora nessun successo! Ecco quello che ho fatto finora:
Creato un app soluzione con un progetto di coreapp console di default. Questo mi gaves almeno due file:
- app.sln
- coreapp \ coreapp.csproj
coreapp.csproj modificato con l'aggiunta di mio target personalizzato all'interno del tag Progetto
<Target Name="SampleTarget"> <Message Text="This is a SampleTarget" /> </Target>
Eseguire sulla riga di comando il seguente comando
%windir%\Microsoft.NET\framework\v3.5\msbuild.exe app.sln /t:coreapp:SampleTarget
o anche
%windir%\Microsoft.NET\framework\v3.5\msbuild.exe app.sln /t:coreapp.csproj:SampleTarget
Risultati
Nessuna fortuna, di fronte l'errore
MSB4057: The target "coreapp.csproj:SampleTarget" does not exist in the project.
Ho il sospetto che MSBuild
pensa somehting fondamentalmente diverso da quello che voglio pensare ...
Oltre a questo, ho anche cercato di impostare sulla stessa riga di comando la variabile d'ambiente MSBuildEmitSolution = 1 per forzare msbuild scaricare una soluzione temporanea file creato durante l'elaborazione della soluzione. In questo file, in effetti, nessun obiettivo simile. Tuttavia suppongo che non sia il motivo perché ho chiesto a msbuild di creare coreapp.proj dove target SampleTarget risiede realmente.
La domanda è come creare SampleTarget in questo scenario semplificato utilizzando il file di soluzione poiché potenzialmente può contenere dipendenze per il progetto contenente questo target SampleTarget?
Sarei grato per qualsiasi tipo di aiuto o di firme per ulteriori indagini!
fa questo aiuto? http://stackoverflow.com/questions/3397460/custom-common-target-to-build-a-solution –