2013-03-22 27 views
6

Tôi đang sử dụng thuộc tính MSBuildProjectDirectory với MSBuild.

Dự án tọa lạc tại:

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

Trong xây dựng MSBuildProjectDirectory là thay vì đánh giá là:

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

và tôi nhận được lỗi "Hệ thống không thể tìm thấy tệp được chỉ định".

Tôi có cần chuyển sang một thư mục khác hoặc tôi có thể đi đúng hướng không?

Trả lời

6

Nếu bạn đang sử dụng Visual Studio 2010/MSBuild 4.0, điều này sẽ xảy ra với một số thuộc tính có chứa dấu ngoặc đơn. Microsoft thừa nhận rằng đây là một lỗi hồi quy từ VS2008 để VS2010, khi sử dụng MSBuild 4.0: http://connect.microsoft.com/VisualStudio/feedback/details/532677/msbuild-4-0-usingtask-cannot-have-a-path-with-parentheses

Theo liên kết ở trên, sau đây có một vấn đề với dấu ngoặc đơn:

  • UsingTask
  • MsBuildProjectDirectoryNoRoot
  • MsBuildProjectDirectory
  • MsBuildProjectFullPath

Độ phân giải: Hiện tại, khi sử dụng MSBuild 4.0, hãy thay đổi vị trí thành đường dẫn không chứa dấu ngoặc đơn.

+0

Xác nhận. Tôi "giải quyết" di chuyển đến một thư mục khác. –

+1

Tôi đã có một vấn đề tương tự và giải quyết nó với [MSBuild] :: Unescape theo gợi ý của anh chàng Microsoft trong vấn đề MS Connect đó. – Michael12345

0

Sử dụng

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

thay vì

$ (MSBuildProjectDirectory)

Các vấn đề liên quan