使用 MSBuild 和 MSBuild 社区任务我正在尝试做一些非常简单的事情:
- 从程序集中获取版本信息。
- 使用该版本信息更新 .nuspec 文件。
我的 MSBuild 目标如下所示:
<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>
我遇到的问题是 NuGetPack 任务运行两次:第一次,程序集版本丢失但路径正确,第二次程序集版本正确但路径丢失!
这是输出:
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.
我也尝试使用 NuGetPack 任务,但得到了类似的结果。非常感谢您的帮助!