visual-studio-2010 - 如何在VS2010后期构建步骤中添加双引号

标签 visual-studio-2010 build msbuild macros quoting

我正在尝试在 VS2010 中创建一个构建后文件复制步骤,该步骤在路径宏具有嵌入空格时进行处理。我尝试将复制命令用双引号括起来,但是如果 $(SolutionDir) 包含空格,则在调用复制时会出错。错误消息中的回显命令行不显示双引号。

复制“$(SolutionDir)$(Configuration)\*”“$(TargetDir)”

我也分别尝试了 \""" 但这两者都会导致 2 字符转义序列出现在回显的命令行中?如何正确转义构建步骤中的双引号?

最佳答案

我在 Visual Studio 中使用带有预构建事件命令的双引号时遇到了问题。我已经看到了这个问题的批处理文件解决方案,但似乎批处理文件并不能解决所有问题并且并不优雅。 我发现解决方法是在结束双引号前加一个空格。具体如下。

以下命令有效,但不支持路径中的空格:

subwcrev $(SolutionDir) $(SolutionDir)subwcrev_template.txt $(SolutionDir)version.h

我几乎无法控制其他开发人员将解决方案放置在何处,因此我必须支持路径中的空格。尝试在路径周围使用引号来支持空格,我想出了以下命令。它总是失败。

subwcrev "$(SolutionDir)""$(SolutionDir)subwcrev_template.txt""$(SolutionDir)version.h"

几乎偶然,我找到了解决方案,在路径的最后一个字符和双引号之间放一个空格。

subwcrev "$(SolutionDir) ""$(SolutionDir)subwcrev_template.txt ""$(SolutionDir)version.h "

这行得通。我在使用 Visual Studio Shell 的 AVR Studio 6.1 中对此进行了测试。

关于visual-studio-2010 - 如何在VS2010后期构建步骤中添加双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11587394/

相关文章:

debugging - 如何调试 ILMerged 程序集?

asp.net - 为什么 RazorViewEngine 不接收我的 DisplayTemplate?

c# - 如何使用另一个类的变量

javascript - 有没有办法从 Gatsby 的构建失败中获取更多信息?

java - Gradle 依赖管理 : how to maintain both old and new version of a dependency in android project?

c# - 为什么我要在 MSBuild 可用时继续使用 Nant?

visual-studio-2013 - Visual Studio 发布配置文件发布错误的构建配置

c++ - 警告 C4005 'identifier' : macro redefinition

android - Gradle 构建成功且没有错误,但在 build.gradle (app) 页面上仍然显示错误

visual-c++ - 如何在 MSBuild objective-c lCompile 中禁用代码分析?