12

Questo collegamento How do I create an XML Intellisense file for my DLL? spiega come creare le DLL in modo che un file XML sia incluso contenente tutte le intestazioni della documentazione in modo che siano disponibili nei popup di IntelliSense.Come creare il pacchetto NuGet che include dati intellisense XML

Nella mia azienda distribuiamo frequentemente le nostre DLL utilizzando una sorgente di pacchetti NuGet interna. Quando creo i pacchetti NuGet per l'origine del pacchetto, come faccio a garantire che qualcun altro ottenga la DLL dall'origine del pacchetto, IntelliSense visualizza le intestazioni della documentazione per loro?

+0

Vedere anche http://stackoverflow.com/q/5205738/284795 –

risposta

14

Se si distribuiscono i file xml con il pacchetto NuGet nella stessa cartella delle DLL, Visual Studio troverà quindi questi file xml e mostrerà intellisense per gli assembly.

Per distibute i file IntelliSense XML che sarà necessario aggiungerli al file .nuspec, ad esempio:

<files> 
    <file src="bin\IronPython.dll" target="lib\Net40" /> 
    <file src="bin\IronPython.xml" target="lib\Net40" /> 
</files> 
+0

L'avevo già provato. La parte che mi mancava era che dovevo menzionare il file .xml nel file .nuspec prima di creare il pacchetto. Puoi dirlo, e poi ti segnerò correttamente. – David

6

tl; dr file di documentazione devono essere .xml non .XML

I è stato in grado di ottenere i file XML inclusi abilitando inizialmente la produzione utilizzando la scheda Build, controllando il file di documentazione XML nella sezione Output. Nota: per qualche motivo ho dovuto modificare manualmente l'estensione da .XML a .xml minuscolo. YMMV. Questa è la stessa della domanda a cui hai fatto riferimento, How do I create an XML Intellisense file for my DLL?.

Una volta terminato, ho creato il file Nuspec nella directory del progetto. Ecco un esempio, puoi anche generarlo con nuget spec MyAssembly.dll - ma assicurati di modificarlo e impostare i valori in modo appropriato.

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>$id$</id> 
    <version>1.0.0</version> 
    <title>Title for your package</title> 
    <authors>Package Author</authors> 
    <owners>Package Owner</owners> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>A description of your library</description> 
    <releaseNotes>Release notes for this version.</releaseNotes> 
    <copyright>Copyright 2013</copyright> 
    <tags>tag1 tag2</tags> 
    </metadata> 
</package> 

Una volta eseguita, ho utilizzato Nuget per il pacchetto. Nota ho dovuto specificare la piattaforma, perché sto utilizzando un sistema operativo a 64 bit, ma non ho alcun obiettivo nel progetto per x64, solo AnyCPU

nuget pack MyAssembly.csproj -Prop Configuration=Release;Platform=AnyCPU -build 

Il montaggio ed è associata la documentazione sono stati inclusi automaticamente nel pacchetto. Inoltre, tutti i pacchetti che hai utilizzato nel tuo progetto vengono aggiunti all'elenco delle dipendenze.

Vedere http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package per ulteriori informazioni.

+1

L'XML maiuscolo minuscolo in minuscolo xml ha funzionato per me. Che è triste –

+0

Triste, ma funziona lol. – AgentFire