【问题标题】:How do I use this command in a pre build event in Visual Studio如何在 Visual Studio 的预构建事件中使用此命令
【发布时间】:2013-06-27 07:28:48
【问题描述】:

我会简明扼要。

命令FOR /F %i IN (C:\Version.txt) DO @set Version=%icmd.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.

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

【问题讨论】:

  • version.txt 中有什么内容?就像“1.0.0.0”之类的东西?什么版本的VS?

标签: visual-studio command pre-build-event


【解决方案1】:

正确的语法是

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)并将其包含在您的所有项目中。

【讨论】:

  • 双重%% 成功了。我现在可以在构建事件中使用Version 变量。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多