0

我会简明扼要。

该命令FOR /F %i IN (C:\Version.txt) DO @set Version=%i可以很好地cmd.exe将文件的文本读入变量。但是每当我将该行放入 Visual Studio 中的预构建事件中时,它都会显示Exited with code 255.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx我发现 0xFF / 255 的意思是:The extended attributes are inconsistent..

如何在预构建事件中使用该命令?非常感谢。

4

1 回答 1

0

正确的语法是

FOR /F %%i IN (C:\Version.txt) DO @set Version=%%i

但是,这不会像您预期的那样起作用:VS 会生成一个 cmd.exe 进程来执行构建事件,这意味着如果您设置一个变量,它只是该 cmd.exe 的本地变量,因此您构建的其余部分将无法访问Version.

幸运的是,有比批处理文件更好的替代方案:如果您使用的是 VS2010 或更高版本,则项目文件是 msbuild 文件,因此要使所有可能的版本控制工作正常工作,您只需创建一个通用的 msbuild 脚本来执行您需要执行的任何操作版本(例如,如果它是用于 C++ 的,则创建一个 .res 文件,或者为 C# 修改 AssemblyInfo.cs)并将其包含在您的所有项目中。

于 2013-06-27T08:02:54.307 回答