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

我正在尝试在 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 中对此进行了测试。

https://stackoverflow.com/questions/11587394/

相关文章:

c# - 如何在我的应用程序中显示上次构建的内部版本号和/或日期时间?

ios - 如何为 iPhone 构建 Boost-Libraries

android - 如何在 Gradle 构建脚本(Android)中定义和使用常量?

java - 将 Google Guava 添加到 Android 项目 - 显着减慢构建速度

c++ - CMake - 创建一个静态库

.net - MSBuild 和 F# 的 FAKE 有什么区别?

scala - SBT:如何访问环境变量或配置?

c# - 如何在解决方案级别使用 Microsoft.Net.Compilers?

c# - 使用不同的 DLL 进行调试和发布版本

visual-studio-2010 - 从命令行发布 Web 应用程序