2013-03-22 7 views
6

Sto utilizzando la proprietà MSBuildProjectDirectory con MSBuild.

Il progetto si trova in:

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

Durante accumulo MSBuildProjectDirectory viene invece valutata come:

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

e ottengo un errore "Il sistema non riesce a trovare il file specificato".

Devo passare a una cartella diversa o posso ottenere la strada giusta?

risposta

6

Se si utilizza Visual Studio 2010/MSBuild 4.0, ciò si verifica con alcune proprietà che contengono parentesi. Microsoft ha ammesso che si trattava di un errore di regressione da VS2008 a VS2010, quando si utilizza MSBuild 4.0: http://connect.microsoft.com/VisualStudio/feedback/details/532677/msbuild-4-0-usingtask-cannot-have-a-path-with-parentheses

Secondo il link qui sopra, le seguenti hanno un problema con le parentesi:

  • UsingTask
  • MsBuildProjectDirectoryNoRoot
  • MsBuildProjectDirectory
  • MsBuildProjectFullPath

Risoluzione: Per ora, quando si utilizza MSBuild 4.0, modificare la posizione in un percorso che non contiene parentesi.

+0

confermare. Ho "risolto" il passaggio a una cartella diversa. –

+1

Ho avuto un problema simile e l'ho risolto con [MSBuild] :: Unescape come suggerito dal ragazzo Microsoft in quel problema di MS Connect. – Michael12345

0

Usa

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

invece di

$ (MSBuildProjectDirectory)

Problemi correlati