$(MSBuildProjectDirectory)和“program files (x86)”文件夹

8

我正在使用MSBuild的属性MSBuildProjectDirectory。

该项目位于:

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

在构建期间,MSBuildProjectDirectory却被解释为:

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

因此出现了“系统找不到指定的文件”错误。

我需要移动到另一个文件夹吗,还是可以获得正确的路径?

2个回答

7
如果您正在使用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。 根据上述链接,以下内容包含问题: UsingTask MsBuildProjectDirectoryNoRoot MsBuildProjectDirectory MsBuildProjectFullPath
解决方法:目前,在使用MSBuild 4.0时,请将位置更改为不包含括号的路径。

1
我曾经遇到过类似的问题,并按照Microsoft Connect问题中那位微软工程师建议的方法,使用[MSBuild] :: Unescape解决了它。 - Michael12345

2

使用$([MSBuild]::Unescape('$(MSBuildProjectDirectory)'))而不是$(MSBuildProjectDirectory)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接