2012-03-28 35 views
6

Tôi đang cố gắng xây dựng một dự án trong teamcity. Nó sẽ thực hiện thanh toán của TFS và các tệp cục bộ trên máy chủ xây dựng. Nếu tôi tự chạy build lệnh trên máy chủ hoạt động:dự án xây dựng teamcity Không thể khởi động MSBuild.exe. Ký tự không hợp lệ trong đường dẫn

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\msbuild.exe C:\TeamCity\buildAgent\work\3446a5bd436eea87\Dev\Dev\project\myproj\myproj.csproj /t:build 

Trong TeamCity Tôi có một bước xây dựng của MSBuild:

con đường fie xây dựng là: Dev \ Dev \ dự án \ myproj \ myproj. csproj" thư mục làm việc để trống phiên bản mbuild: net framework microsoft 4,0 msbuild toolsversion: 4,0 chạy nền tảng: X86 mục tiêu: tôi đã cố gắng xây dựng 'xây dựng' và để trống dòng lệnh params để trống

nếu tôi tạo một nhiệm vụ xây dựng dòng lệnh và chạy dòng lệnh trên nó hoạt động. Tôi không chắc chắn những gì có sự khác biệt giữa dòng lệnh và nhiệm vụ msbuild trong teammcity.

EDIT

Tôi đã thử một vài biến thể trên thư mục làm việc:

Đường dẫn đầu ra trong dự án được thiết lập để .. \ Build \ Tools \ myproj \

Vì vậy, tôi có đặt thư mục làm việc theo nhóm thành: Dev \ Dev \ project \ Build \ Tools \ myproj \

Điều này không hữu ích.

Đây là kết quả chính xác từ TeamCity:

Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:C:\TeamCity\buildAgent\work\3446a5bd436eea87\Dev\Dev\project\Build\Tools\myproj /msbuildPath:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
in directory: C:\TeamCity\buildAgent\work\3446a5bd436eea87\Dev\Dev\project\Build\Tools\myproj 


Failed to start MSBuild.exe. Illegal characters in path. 
System.ArgumentException: Illegal characters in path. 
    at System.IO.Path.CheckInvalidPathChars(String path) 
    at System.IO.Path.IsPathRooted(String path) 
    at JetBrains.TeamCity.Utils.FileUtil.MakeFullPath(String path, String workDir) in   c:\BuildAgent\work\c2314fd21f15dc97\src\Utils\src\FileUtil.cs:line 48 
    at JetBrains.BuildServer.MSBuildBootstrap.RunArgs.get_ProjectFile() in  c:\BuildAgent\work\c2314fd21f15dc97\src\MSBuildBootstrap\src\RunArgs.cs:line 156 
    at  JetBrains.BuildServer.MSBuildBootstrap.Impl.MSBuildBootstrapFactory.Create(IClientRunArgs  args) in  c:\BuildAgent\work\c2314fd21f15dc97\src\MSBuildBootstrap.Core\src\Impl\MSBuildBootstrapFact ory.cs:line 29 
    at JetBrains.BuildServer.MSBuildBootstrap.Program.Run(String[] _args) in  c:\BuildAgent\work\c2314fd21f15dc97\src\MSBuildBootstrap\src\Program.cs:line 67 
+0

Chỉ định thư mục hoạt động xây dựng – KMoraz

+0

Bạn đã kiểm tra nhật ký xây dựng cho thành phố nhóm lệnh chính xác là runnng chưa? –

Trả lời

1

Thử chỉnh sửa cấu hình xây dựng và loại bỏ các dấu ngoặc kép từ đường dẫn tập tin Build tùy chọn.

Nếu bạn có:

"Dev \ Dev \ dự án \ myproj \ myproj.csproj"

Chỉ cần cho:

Dev \ Dev \ dự án \ myproj \ myproj.csproj

Tôi hy vọng sự giúp đỡ này.

0

câu hỏi này có vẻ rất giống nhau:

What's the illegal character in this string ? I'm getting MSBUILD : error MSB3095

Ngoài ra cho câu hỏi này, hãy xem tại địa chỉ:

What is a dll.refresh file in ASP.Net?

Về câu hỏi này, câu trả lời này là quan tâm:

Trong dự án ASP.NET, addi ng tham chiếu dựa trên tệp sẽ thêm một tệp .refresh vào thư mục Bin. Khi dự án nằm dưới sự kiểm soát nguồn , tệp này sau đó được thêm vào điều khiển nguồn. * .dll.refresh các tệp phân phát thư mục bin.Mỗi lần bạn thêm tham chiếu bên ngoài, bạn sẽ tìm thấy tệp dll.refresh ngay bên cạnh nó. Các tệp dll.refresh này là ngoại lệ đối với quy tắc và chúng sẽ đi vào điều khiển nguồn. Cách duy nhất mà dự án web của bạn sẽ biết được nơi tài liệu tham khảo của nó là trực tiếp.

Nếu bạn không có quyền kiểm soát nguồn, điều này có thể giải thích được sự cố bạn đang gặp phải. Có vẻ như thông báo lỗi có khả năng gây hiểu nhầm và điều này liên quan đến một tham chiếu không được giải quyết trên máy xây dựng.

Liên quan đến lý do tại sao nó hoạt động từ dòng lệnh, có thể là khi bạn đang xây dựng từ TeamCity nó làm sạch thư mục đầu ra trước khi xây dựng? Nếu khi bạn chạy từ các tệp nhị phân dòng lệnh đã được xuất từ ​​bản dựng không thành công một phần được tham chiếu dưới dạng tham chiếu tệp, điều này sẽ thành công.

Để xác định nếu đây là trường hợp - nếu bạn thực hiện thanh toán hoàn toàn sạch sẽ và sau đó chạy bước MSBuild từ dòng lệnh, nó vẫn thành công?

1

Trong TeamCity, khi bạn đang sử dụng tham số cho đường dẫn của bạn hoặc một phần của đường dẫn, bạn có thể dễ dàng dán vào thư mục và không nhận thấy rằng nó có Dòng mới hoặc Chuyển dòng trên đầu (như tôi tìm thấy từ kinh nghiệm đau đớn). Nó có thể hiển thị trong TeamCity làm giá trị cho một tham số:

\ folder1 \ NewlyPastedInFolder \ ExistingFolder \ BuildScripts

gì trông giống như một giá trị từ bọc thực sự là một tham số với một vận chuyển trở lại ở giữa. Kiểm tra nó bằng cách chỉnh sửa nó, và xem bạn có thể xóa các ký tự để làm cho nó thành một giá trị một dòng.

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