$(MSBuildProjectDirectory)和;程序文件(x86)";文件夹

$(MSBuildProjectDirectory)和;程序文件(x86)";文件夹,msbuild,Msbuild,我正在将属性MSBuildProjectDirectory与MSBuild一起使用 该项目位于: C:\ProgramFiles(x86)\Jenkins\workspace\MyProject 在生成过程中,MSBuildProjectDirectory的计算结果为: C:\ProgramFiles%28x86%29\Jenkins\workspace\MyProject 我得到一个“系统找不到指定的文件”错误 是否需要移动到其他文件夹,或者是否可以获取正确的路径?如果您使用的是Visual

我正在将属性MSBuildProjectDirectory与MSBuild一起使用

该项目位于:

C:\ProgramFiles(x86)\Jenkins\workspace\MyProject

在生成过程中,MSBuildProjectDirectory的计算结果为:

C:\ProgramFiles%28x86%29\Jenkins\workspace\MyProject

我得到一个“系统找不到指定的文件”错误


是否需要移动到其他文件夹,或者是否可以获取正确的路径?

如果您使用的是Visual Studio 2010/MSBuild 4.0,则某些包含括号的属性会出现这种情况。Microsoft承认,在使用MSBuild 4.0时,这是从VS2008到VS2010的回归错误:

根据上述链接,以下内容与括号有关:

  • 使用任务
  • MsBuildProjectDirectoryNoRoot
  • MsBuildProjectDirectory
  • MsBuildProjectFullPath
分辨率:目前,在使用MSBuild 4.0时,请将位置更改为不包含括号的路径。

使用

$([MSBuild]::Unescape(“$(MSBuildProjectDirectory)”)

而不是


$(MSBuildProjectDirectory)

我遇到了一个类似的问题,并用[MSBuild]:Unescape解决了它,正如Microsoft的家伙在那个MS Connect问题中建议的那样。