在执行应用程序的发行版本时,我将运行程序所需的所有文件复制到文件夹中。我希望该文件夹名称包含程序集版本。
我有部分构建命令。我可以将版本号放入一个名为tmpfile的文件中。问题似乎是从该文件中读取版本号到一个变量中。
if $(ConfigurationName) == Release (
powershell "(Get-Item -path $(TargetPath)).VersionInfo.ProductVersion" > tmpfile
set /p VER=< tmpfile
echo %VER% > fileversion
set "DIRNAME=FilterUtilityApp%VER%"
xcopy /s /y "$(TargetDir)*" "$(SolutionDir)%DIRNAME%\"
xcopy /y "$(ProjectDir)Docs\*" "$(SolutionDir)%DIRNAME%\Docs\"
)
我已经使用CMD窗口测试了读取和写入VER的行,并且这些命令有效,文件版本包含版本号。当我运行构建脚本时,fileversion包含“ Echo on on”,我认为这意味着VER为空。我的build命令可能还有其他问题,但是我仍然无法读取版本号。
答案 0 :(得分:1)
根据aschipfl的评论,这是工作脚本。
if $(ConfigurationName) == Release (
SETLOCAL EnableDelayedExpansion
powershell "(Get-Item -path $(TargetPath)).VersionInfo.ProductVersion" > version
set /p VER=< version
del version
set "DIRNAME=FilterUtilityApp_!VER!"
xcopy /s /y "$(TargetDir)*" "$(SolutionDir)!DIRNAME!\"
xcopy /y "$(ProjectDir)Docs\*" "$(SolutionDir)!DIRNAME!\Docs\"
)
请注意,%VER%已由!VER!代替。