Evento dinamico post-compilazione in Visual Studio

1

Sto costruendo un'applicazione di video server con più progetti in Visual Studio. Un progetto, il progetto del server video, ha bisogno di chiamare uno script di shell per generare documentazione. Funziona bene quando costruisci il progetto del server video, perché lo script è semplicemente

cd "$(SolutionDir)"
start documentationgenerator

Tuttavia, esiste anche un progetto SDK che, una volta creato, crea anche il progetto del server video. Tuttavia, quando esegue questa operazione, non sa dove si trova lo script della shell, poiché tenta di utilizzare la Directory della soluzione del progetto SDK .

  • Progetto SDK
  • Progetto server video
    • script di shell

Quindi la domanda è: come faccio a fare in modo che il progetto SDK trovi il progetto server video? Ho controllato le proprietà di MSBuild e non ci sono proprietà che sembrano gestire progetti "annidati".

    
posta SSumner 18.06.2012 - 17:38
fonte

1 risposta

2

(Modificato in risposta ai commenti)

Il trucco per ottenere una build consistente quando riusciamo i progetti attraverso le soluzioni è cercare di identificare una radice e un lavoro noti e comuni relativi a lì. Al posto tuo la radice comune sembrerebbe essere il progetto del server video.

Invece di usare $ (SolutionDir) nel tuo progetto video (evento post build?), prova a fare qualcosa con i server video $ (ProjectDir) - che sarà sempre impostato indipendentemente dalla soluzione in cui vive. Dal tuo esempio qualcosa del genere dovrebbe risolversi nello stesso posto di $ (SolutionDir) - probabilmente dovrai giocare con virgolette e battere \ trailing backslash - Non riesco a ricordare cosa fanno le macro VS con quelle adesso.

cd "$(ProjectDir)..\"
start DocumentationBuilder
    
risposta data 18.06.2012 - 23:10
fonte

Leggi altre domande sui tag