2011-10-24 18 views
8

Utilizzo il Generatore di file di aiuto di Sandcastle per l'output del mio file XML C# C nel formato del sito Web. Come posso ottenere il samething dalla riga di comando in modo che possa aggiungerlo come evento di compilazione in Visual Studio durante la creazione del progetto vero e proprio?Creazione di documentazione Sandcastle durante la creazione di Visual Studio Project

L'obiettivo finale è quello di creare il contenuto del file di Guida del sito Web quando creo il progetto di Visual Studio.

risposta

9

Come indicato da Scott Wylie, è necessario specificarlo nella riga di comando evento post build nelle proprietà del progetto di Visual Studio. Tuttavia, suggerirei di usare direttamente Sandcastle Help File Builder (SHFB) piuttosto che Sandcastle. Si effettua la chiamata riga di comando brevi e semplici come mostrato di seguito, ma si noti che prima è necessario configurare il progetto SHFB con l'SHFB interfaccia grafica, che crea un file di generazione msbuild-compatibile con il ".shfbproj" suffisso:

 
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
     /p:Configuration=Release myProject.shfbproj 

Tuttavia, si noti che prendo l'approccio opposto da quello che si sta facendo: invece di utilizzare Visual Studio per avviare in modo interattivo una build e azioni ausiliarie, utilizzo ant (nant) per avviare una build di tutto, che include le mie soluzioni Visual Studio e successiva azione SHFB. Quindi questo è davvero la chiamata della riga di comando faccio a costruire la documentazione con Sandcastle:

<exec executable="${msbuild}" dir="${csharpdoc}" output="${csharpdoc.log}"> 
    <arg value="/p:Configuration=Release"/> 
    <arg value="myProject.shfbproj"/> 
</exec> 

La mia preferenza è che l'intera costruzione dovrebbe essere launchable dalla riga di comando quindi non ci sono interazioni necessarie (ad esempio lanciando Visual Studio , eccetera.). Ciò fornisce la flessibilità di eseguire o come attività ricorrente pianificata o on-demand dalla shell.

+1

Quindi, come menzionato in un commento su un'altra risposta, come evento Post-Build nelle normali proprietà di build di Visual Studio, ho aggiunto il comando per creare il file SHFBPROJ con MSBuild (simile a quello che hai pubblicato sul primo frammento di codice). Tuttavia, durante l'esecuzione della build, ha avviato oltre 1000 istanze di MSBuild.exe in Task Manager e bloccato. Qualche idea, perché? –

+0

BTW, la build quando uso il Builder della Guida per compilare invece di MSBuild, ci vogliono circa 2 minuti. L'aggiunta alla build del post è durata più di un'ora con il 100% di utilizzo della CPU fino a quando non l'ho finalmente ucciso. –

+0

@JohnChapman: che cosa si tratta di "Help Builder" a cui ti riferisci? È qualcosa incluso nel pacchetto SHFB? –

0

Se si utilizza MSBuild per lo strumento di costruzione, questo è lo tutorial che ho utilizzato qualche tempo fa.

C'è anche uno script su codeplex che puoi esaminare usando questo potrebbe aiutarti.

Spero che questo aiuti!

+0

Sembra che sia usato per le build TFS. Come lo farei in una normale build di progetto? –

1

È possibile chiamare SandCastle dalla riga di comando dell'evento post build, nella sezione Crea eventi delle proprietà del progetto. Questo dovrebbe funzionare bene se non stai usando uno strumento di compilazione automatico.

+0

tecnicamente se si modificano gli eventi di compilazione nella finestra delle proprietà si sta utilizzando lo strumento di creazione automatica di MSBuild. Volevo solo chiarire. – ajrawson

+0

Come lo farei in modo specifico? Ho trovato un modo per chiamare MSBuild contro il file di progetto Sandcastle, tuttavia avvia oltre 1000 processi separati MSBuild e blocca il computer (non lo fa quando si costruisce dalla GUI). –

0

Ho trovato più semplice aggiungere il progetto * .shfbproj alla soluzione. Si sviluppa bene (anche se un po 'lentamente) all'interno di VS 2010.

+0

Non riesco ad aggiungere il file shfbproj in VS2013. (Non ho l'estensione SHFB installata in quanto potrebbe inquinare l'obiettivo della build solution). – user2864740

Problemi correlati