最终修改:尽管相对路径在第一个帖子中无法工作,但如果我从Exec
行中简单地删除$(MsBuildThisFileDirectory)
,则可以工作。
编辑2:我将新目标添加到了DefaultTargets
中。它们现在默认运行。然而,后期构建命令的时间不对了。我将<Exec Command="call $(MsBuildThisFileDirectory)documentation\tools\GenerateDocumentation.bat" IgnoreExitCode="false" />
添加到该目标中,但它会出现错误,指出C:\Users\my
不是有效的批处理文件,因为其中的空格实际上是C:\Users\my program\documentation\tools\GenerateDocumentation.bat
。在路径周围加上引号会给我带来错误MSB4025
,名称不能以$
开头。
编辑:我尝试了stijn的代码,当我使用/t:RetrieveIdentities从命令行显式运行它时,它可以工作,但由于某种原因,否则它似乎无法运行。
我一直在使用Doxygen生成我的源代码文档,但我希望能够自动执行此操作。我编写了一个简单的.bat
脚本,使用我的所需配置文件运行Doxygen,并将输出编译为一个.chm
帮助文件,但我无法自动更改Doxygen中的修订号。
我试图简单地通过使用MSBuild向配置文件添加一行新的修订号来更新配置文件,但是当没有文件存在时,我无法使任何内容打印出来或创建新文件。
到目前为止,我所拥有的代码都是从其他类似问题中获取的,但我似乎无法使它工作。
<ItemGroup>
<MyTextFile Include="\documentation\DoxygenConfigFile.doxyconfig"/>
<MyItems Include="PROJECT_NUMBER = %(MyAssemblyIdentitiesAssemblyInfo.Version)"/>
</ItemGroup>
<Target Name="RetrieveIdentities">
<GetAssemblyIdentity AssemblyFiles="bin\foo.exe">
<Output TaskParameter="Assemblies" ItemName="MyAssemblyIdentities"/>
</GetAssemblyIdentity>
<WriteLinesToFile File="@(MyTextFile)" Lines="@(MyItems)" Overwrite="false" Encoding="UTF8" />
</Target>