Utilizzando MSBuild e MSBuild comunitari I compiti che sto cercando di fare qualcosa di molto semplice:Utilizzando XmlUpdate per impostare informazioni sulla versione da un'Assemblea
- Ottenere informazioni sulla versione da un assembly.
- Aggiornare un file .nuspec con le informazioni sulla versione.
Il mio obiettivo MSBuild si presenta così:
<Target Name="Package">
<GetAssemblyIdentity AssemblyFiles="%(PackageDir.FullPath)\MyAssembly.dll">
<Output TaskParameter="Assemblies" ItemName="AssemblyIdentity" />
</GetAssemblyIdentity>
<XmlUpdate
Prefix="nu"
Namespace="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"
XmlFileName="%(PackageDir.FullPath)\MyAssembly.nuspec"
XPath="/nu:package/nu:metadata/nu:version"
Value="%(AssemblyIdentity.Version)" />
</Target>
Il problema che sto avendo è che il compito NuGetPack eseguito due volte: la prima volta, la versione Assemblea manca ma i percorsi sono corretti, il la seconda volta la versione dell'Assembly è corretta ma mancano i percorsi!
Ecco l'output:
Updating Xml Document "D:\MyProject\package\MyAssembly.nuspec".
1 node(s) selected for update.
XmlUpdate Wrote: "".
Updating Xml Document "\MyAssembly.nuspec".
D:\MyProject\MyProject.build(64,9): error : Could not find file
'D:\MyAssembly.nuspec'.
Done Building Project "D:\MyProject\MyProject.build" (Package target(s)
) -- FAILED.
Ho provato anche utilizzando l'attività NuGetPack, ma ho ottenuto risultati simili. L'aiuto è molto apprezzato!