2017-06-06 27 views
9

tôi đang sử dụng nội suy chuỗi bằng cách sử dụng $ trong mã của tôi. Nó biên dịch tốt nhưng khi tôi kiểm tra mã của tôi, máy chủ xây dựng ném một lỗi BC30037: Character is not valid. Sau đây là ví dụ về cách tôi đã sử dụng nội suy chuỗi:

dim r = New RadNode($"{acq.FormNo} - ${CInt(acq.TotalAmount)}", icon:=RadTreeIcons.RedTriangle) 

Máy chủ xây dựng đã cài đặt Visual Studio 2015 Phiên bản Entreprise.

Nếu tôi chạy này từ dấu nhắc lệnh:

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild /tv:14.0 "Proj.sln", mã biên dịch tập tin. Tuy nhiên, nếu tôi thay đổi các tham số ở trên để

C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild /tv:12.0 "Proj.sln", tôi nhận được các lỗi tương tự

tôi cũng đã thực hiện những thay đổi này:

tôi đã thiết lập các MSBuildArguments tài sản để /p:VisualStudioVersion=14.0 và cũng đã thay đổi tập tin TFSBuild.proj và thay đổi dòng này đến <Project DefaultTargets="DesktopBuild" xmlns="schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="14.0">" nhưng cùng một vấn đề đang xảy ra.

Đã thay đổi tệp (web vbproj) và thay đổi Phiên bản ToolSet thành 14.0 từ 12.0. Các dự án vb khác một phần của giải pháp vẫn đang nhắm mục tiêu 12.0 nhưng được biên dịch trong dll như là một phần của dự án vb web.

+0

Bạn đang sử dụng công trình xây dựng nào? XAML hoặc vNext xây dựng? Bạn có thể thêm thông tin chi tiết hơn để khắc phục sự cố, chẳng hạn như nhật ký chi tiết và môi trường của bạn không. –

+0

Tôi đang sử dụng XAML build. – Baahubali

+1

Hey @ Patrick-MSFT phiên bản của msbuild nào XAML sử dụng để xây dựng và bạn có thể thiết lập phiên bản giống như bạn có thể trong bản dựng vNext không? Tôi nhớ hộp thoại xây dựng cấu hình trong VS có một loạt các thiết lập cho msbuild, nhưng tôi không thể nhớ nếu có một cách để thiết lập đường dẫn TFSBuild sử dụng để thiết lập nơi msbuild được chạy từ ... Đây có thể là trường hợp trong này ví dụ? –

Trả lời

6

trả lời nằm ở đây giải quyết vấn đề của tôi:

BuildActivity ignores ToolsVersion

Đối với những người trong chúng ta không sống trong cuộc sống e xây dựng mẫu mỗi ngày dưới đây là các bước giúp nó hoạt động cho tôi:

Trước tiên hãy tìm mẫu được liên kết với bản dựng của bạn (nếu bạn đã biết nơi để tìm mẫu đó bỏ qua một vài bước).

Chỉ cần nhấp chuột phải vào định nghĩa bản dựng và chọn Chỉnh sửa định nghĩa xây dựng Chọn tab Quy trình và bạn sẽ thấy tên của mẫu (rất có thể là DefaultTemplate nếu bạn chưa tùy chỉnh). Trên bên phải, hãy nhấp vào Hiển thị chi tiết để xem đường dẫn cho mẫu.

enter image description here

Tới tab Home dưới Đội thám hiểm và nhấp Nguồn kiểm soát explorer enter image description here

Tìm file template và nhấp đúp để chỉnh sửa nó. Nó sẽ xuất hiện trong một khung nhìn đồ họa như thế này. Cuộn đến khi bạn tìm thấy Chạy MSBuild cho Dự án enter image description here

Bấm vào mặt hàng này mà ngay lập tức sẽ mang đến tính enter image description here

Bấm vào biểu tượng nhỏ ở bên phải - không cố gắng và gõ vào bởi vì nó' sẽ có thể phát nổ và sụp đổ Visual Studio. Nhập trong dấu ngoặc kép như sau: "C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin" enter image description here

NGAY ĐỂ ĐƯỢC PHỤC phần quan trọng nhất

Đối với tôi Run MSBuild cho dự án là ở hai nơi.

Vì vậy, tôi chỉ lặp lại các bước trên ở cả hai nơi, và sau đó sau khi tôi đã kiểm tra tệp .xaml, xây dựng CUỐI CÙNG của tôi hoạt động tốt.

Bạn có thể cần phải tái chế tác nhân/bộ điều khiển từ bên trong công cụ TFS.

enter image description here

2

when i check in my code, the build server throws an error, có vẻ như bạn đang sử dụng bản dựng CI. Bạn cũng có thể thử một cách thủ công với hàng đợi xây dựng. Và xây dựng mã của bạn ở địa phương để thu hẹp nếu nó liên quan đến môi trường TFS của bạn hay không.

Ngoài ra, hãy xem chế độ xem sự kiện trong tác nhân/máy chủ xây dựng, nếu có một số thông tin hữu ích.

Lỗi BC30037: Character is not valid không có TFxxxx có thể liên quan đến mã hoặc cú pháp của bạn.

  • Kiểm tra xem nhân vật phụ đã vô tình được chèn vào phần tử lập trình hay chưa.
  • Kiểm tra rằng phần tử lập trình được viết hoặc xây dựng chỉ sử dụng ký tự có giá trị mà loại nguyên tố

Character is not valid

+1

điều tra thêm, trông giống như máy chủ xây dựng đang sử dụng MsBuild 12 hoặc cũ hơn để thực hiện việc xây dựng và bạn msbuild phiên bản 14.0 trở lên để xây dựng nội suy chuỗi một cách chính xác. tôi đặt thuộc tính MSBuildArguments thành /p:VisualStudioVersion=14.0 và cũng thay đổi tệp TFSBuild.proj và thay đổi dòng này thành "" nhưng cùng một vấn đề đang xảy ra. – Baahubali

+0

@Baahubali Xin lỗi vì trả lời sau. Đây là một vấn đề cũ trong xây dựng TFS XAML. Mẫu tiến trình luôn trỏ đến phiên bản msbuild sai 12.0 thay vì 14.0 khi xây dựng .net4.6/C# 6.0. Có rất nhiều giải pháp cho vấn đề này. Chẳng hạn như https://stackoverflow.com/questions/32659106/tfs-2013-building-net-4-6-c-sharp-6-0/32691755#32691755. Dường như vấn đề của bạn đã được giải quyết. Vui mừng vì điều đó, luôn luôn tốt hơn khi bạn tự khắc phục; khi bạn hiểu cách hoạt động! :) –

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