【问题标题】:$(MSBuildProjectDirectory) and "program files (x86)" folder$(MSBuildProjectDirectory) 和“程序文件 (x86)”文件夹
【发布时间】:2016-03-21 23:10:57
【问题描述】:

我将属性 MSBuildProjectDirectory 与 MSBuild 一起使用。

项目位于:

C:\Program Files (x86)\Jenkins\workspace\MyProject

在构建期间,MSBuildProjectDirectory 被评估为:

C:\Program Files %28x86%29\Jenkins\workspace\MyProject

我收到“系统找不到指定的文件”错误。

我需要移动到不同的文件夹还是可以找到正确的路径?

【问题讨论】:

    标签: msbuild


    【解决方案1】:

    如果您使用的是 Visual Studio 2010 / MSBuild 4.0,则某些包含括号的属性会发生这种情况。微软承认这是使用 MSBuild 4.0 时从 VS2008 到 VS2010 的回归错误: http://connect.microsoft.com/VisualStudio/feedback/details/532677/msbuild-4-0-usingtask-cannot-have-a-path-with-parentheses

    根据上面的链接,下面的括号有问题:

    • 使用任务
    • MsBuildProjectDirectoryNoRoot
    • MsBuildProjectDirectory
    • MsBuildProjectFullPath

    解决方法:目前,在使用 MSBuild 4.0 时,将位置更改为不包含括号的路径。

    【讨论】:

    • 我遇到了类似的问题,并按照微软人在那个 MS Connect 问题中的建议使用 [MSBuild]::Unescape 解决了它。
    【解决方案2】:

    使用

    $([MSBuild]::Unescape('$(MSBuildProjectDirectory)'))

    而不是

    $(MSBuildProjectDirectory)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-24
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多