14

Per generare la documentazione XML utilizzando le pagine della Guida dell'API Web per il mio progetto API Web, ho dovuto controllare l'opzione "File di documentazione XML" sotto " Costruisce "la sezione delle proprietà del mio progetto. Ciò genera correttamente la documentazione quando creo localmente."Accesso negato" sul server di build durante la distribuzione di un progetto API Web con documentazione XML

Tuttavia, quando il check-in, ottengo il seguente errore sul server di generazione:

CSC: Errore di documentazione di generazione XML 'c: \ Builds \ 3 ... \ Sources \ CurrentVersion. .. \ ProjectName \ App_Data \ XmlDocument.xml ' (' Accesso negato. ')

io non sono sicuro perché questo accade, in quanto crea una nuova directory per ciascun costruire comunque. Ho cercato su Google questo problema e ho cercato Stack Overflow, ma le uniche soluzioni che ho trovato sono state la rimozione del file di documentazione XML (che vanifica lo scopo di utilizzare le pagine della Guida dell'API Web). Come posso risolvere questo?

+0

Il file "Nome progetto \ App_Data \ XmlDocument.xml" è stato archiviato in TFS?E stai cercando di sovrascrivere il file per ogni build? – Isaiah4110

+0

Sì, il file è archiviato. Voglio che il file venga copiato nella cartella di rilascio con ogni generazione, ma penserei che non sia necessario sovrascriverlo poiché viene creata una nuova cartella di rilascio per ogni generazione. – mayabelle

risposta

17

Se il file XML viene archiviato in TFS, quando TFS ottiene i file nello spazio di lavoro sul server di generazione, avrà "attributo di sola lettura" associato al file. Ora, quando la build genera il nuovo file XML, non sarà in grado di sovrascrivere il vecchio file XML poiché ha l'attributo di sola lettura.

soluzione è quella di: a) usare i vostri script di build per modificare l'attributo di file e renderlo lettura scrivere b) rimuovere il file xml il check-in a TFS in modo che, costruire sarà in grado di generare il codice XML facilmente .

Aggiornamento: se si utilizza la soluzione b, se il file fa parte del file di progetto, assicurarsi di rimuovere anche il file dal file csproj.

+0

Aveva questo problema oggi anche se ho lavorato a quel progetto e pubblicato poche settimane fa. –

5

La rimozione del file dal controllo del codice sorgente non ha risolto il problema per me, Team Server stava ancora tentando di accedervi.

Sono stato in grado di risolverlo con Cloaking App_Data nella definizione build.

+0

Funziona su TFS 2015. Grazie. – Steven

0

Anche se si sta creando una nuova directory per ogni build, questa directory è solo per l'output di build. La build in realtà non si verifica in quella directory, si verifica nell'area di lavoro di tfs del server e l'output di build viene copiato nella nuova directory dopo. L'errore di accesso negato è dovuto al fatto che il file archiviato viene letto solo quando si accede da tfs nello spazio di lavoro del server di build e quindi il file non può essere rigenerato \ sovrascritto durante la compilazione.

Ho risolto questo problema modificando il percorso di output della documentazione xml nella cartella bin.

Così Project-> Crea -> Output uscita Percorso: bin \ file Documentation XML: bin/XmlDocument.xml

Vi suggerisco di fare questo per tutte le configurazioni di build (progetto -> Crea, Configurazione Menu a tendina -> Selezionare Tutte le configurazioni)

Poi sotto Progetto -> Aree/helppage/App_Start/HelpPageConfig.cs cambiare config.SetDocumentationProvider per mappare a "~/bin/XmlDocument.xml"

non dimentica di rimuovere anche il file XmlDocument.xml dal controllo del codice sorgente viene rigenerato per ogni build

Problemi correlati