2013-03-22 6 views
6

Ich verwende die Eigenschaft MSBuildProjectDirectory mit MSBuild.

Das Projekt befindet sich in:

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

Während Build MSBuildProjectDirectory statt ausgewertet als:

C: \ Programme% 28x86% 29 \ Jenkins \ workspace \ MeinProjekt

und ich bekomme einen Fehler "Das System kann die angegebene Datei nicht finden".

Muss ich in einen anderen Ordner wechseln oder kann ich den richtigen Pfad finden?

Antwort

6

Wenn Sie Visual Studio 2010/MSBuild 4.0 verwenden, wird dies bei bestimmten Eigenschaften vorkommen, die runde Klammern enthalten. Microsoft gab zu, dass dies ein Regressionsfehler von VS2008 auf VS2010, war, als MSBuild 4.0 mit: http://connect.microsoft.com/VisualStudio/feedback/details/532677/msbuild-4-0-usingtask-cannot-have-a-path-with-parentheses

Gemäß dem obigen Link, haben folgend ein Problem mit Klammern:

  • Usingtask
  • MsBuildProjectDirectoryNoRoot
  • MsBuildProjectDirectory
  • MsBuildProjectFullPath

Auflösung: Wenn Sie MSBuild 4.0 verwenden, ändern Sie den Speicherort zunächst in einem Pfad, der keine Klammern enthält.

+0

bestätigen. Ich "löste" das Verschieben in einen anderen Ordner. –

+1

Ich hatte ein ähnliches Problem und löste es mit [MSBuild] :: Unescape, wie von dem Microsoft-Typen in diesem MS-Connect-Problem vorgeschlagen. – Michael12345

0

Verwenden

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

statt

$ (MSBuildProjectDirectory)

Verwandte Themen