2013-07-24 39 views
8

Tôi có một giải pháp VS 2012 có chứa hai dự án (WCF C# Service App và một Web UI VB) mà tôi đang cố gắng triển khai thông qua TeamCity/MsBuild dòng lệnh. Mỗi dự án có chứa một hồ sơ xuất bản - hãy gọi nó là "Hồ sơ kiểm tra" - hoạt động tốt khi được thực hiện từ việc sử dụng IDE.MsBuild không tìm thấy hồ sơ xuất bản

Tuy nhiên, khi thực hiện như hai bước xây dựng liên tiếp, các dự án # C triển khai tốt, nhưng dự án VB không thành công với các lỗi sau:

[09:27:05][ValidatePublishProfileSettings] GetPublishingLocalizedString [09:27:05][GetPublishingLocalizedString] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4435, 5): The value for PublishProfile is set to 'Test Profile', expected to find the file at 'C:\BuildAgent\work\61493e349d61af8c\Yms.Web.Ui__profiles\Test Profile.pubxml' but it could not be found.

Mỗi bước xây dựng được thiết lập để sử dụng MSBuild v4.0, Run Nền tảng x64, ToolsVersion 4.0. Các thông số dòng lệnh là:

/P:Configuration="Test Profile"
/p:DeployOnBuild=true /p:PublishProfile="Test Profile"
/p:VisualStudioVersion=11.0 /p:Password=james2

Khi chạy như một xây dựng bước duy nhất chống lại các giải pháp chứ không phải là các dự án, tôi nhận được lỗi tương tự, ngoại trừ "Ui_profiles" trong thông báo lỗi được thay thế bằng "PublishProfiles".

Bất kỳ sự giúp đỡ ở tất cả được nhiều đánh giá, đây là lái xe cho tôi gàn

+1

Thông số Cấu hình có phải giống như Gỡ lỗi hoặc Phát hành thay vì giá trị của thông số PublishProfile không? – Nicodemeus

+0

Đó là tên của cấu hình xây dựng hợp lệ –

+1

Đáng thử sử dụng tên hồ sơ xuất bản không có dấu cách. Đã từng loại vấn đề này gây ra vấn đề trước đây. –

Trả lời

20

Tôi có chính xác cùng một vấn đề nhưng đối với một dự án VS2010 Web Application (với bản cập nhật Azure SDK 1.8 để cập nhật các tùy chọn xuất bản). Dường như mục tiêu xuất bản web do MS cung cấp sẽ không đánh giá đường dẫn cho Hồ sơ xuất bản chính xác.

tôi đã kết thúc làm hai điều quan trọng:

  • cài đặt SDK Azure (1.8) trên máy chủ biên (Nếu không, hồ sơ công bố đã bị lờ đi)
  • buộc "PublishProfileRootFolder" tham số trong Cấu hình xây dựng Teamcity (Nếu không, điều này sử dụng đường dẫn không chính xác được cung cấp bởi Mục tiêu xuất bản web của MS)

My MSBuild comman d thông số trông như sau:

/P: DeployOnBuild = true
/P: PublishProfile = [Tên Thông tin cá nhân (không có phần mở rộng tập tin)]
/P:PublishProfileRootFolder="%teamcity.build.checkoutDir% \ Source \ Web Application \ My Project \ PublishProfiles"(nơi xuất bản hồ sơ của bạn được lưu trữ)
/P: AllowUntrustedCertificate = true
/P:Password=%env.DomainPassword%

Hy vọng điều này sẽ giúp ai đó trong cùng một thuyền!

+3

/p: PublishProfileRootFolder đã sửa nó cho tôi, nhưng không có dấu ngoặc kép xung quanh giá trị. – Tom

+3

YEEES !! OH DEAR GOD CÓ !! ... hai tuần ... "cài đặt Azure SDK (1.8) trên máy chủ xây dựng (Nếu không, các cấu hình xuất bản bị bỏ qua)" Tôi nâng cấp tôi xây dựng máy chủ lên 2008 R2 với MSBuild 12 và điều này ngừng hoạt động. Mọi giải pháp khác là "ngừng sử dụng các hồ sơ xuất bản, sử dụng các đặc tính dòng lệnh" nhưng điều đó thật khủng khiếp, tôi muốn chúng dưới sự kiểm soát nguồn. Cảm ơn chúa cho + MattWoodward ... – RoboJ1M

+0

Cụ thể tôi đã sử dụng liên kết này: https://azure.microsoft.com/en-gb/downloads/archive-net-downloads/ Chúng tôi sử dụng VS 2012 và /p:VisualStudioVersion=11.0 vì vậy tôi đã tải xuống Liên kết VS 2012. Tôi đoán nó cố định các mục tiêu v11? Các liên kết này là các trình nạp tự động WPI kích hoạt WPI 5 và thiết lập nó để cài đặt một tập các tệp cụ thể. Đẹp và tự động. Để làm rõ, liên kết/phiên bản chính xác là VS 2012 dưới tiêu đề "2,6", phiên bản mới nhất bao gồm VS 2012 trong danh sách của nó. – RoboJ1M

0

Câu trả lời được cung cấp bởi Matt Woodward đưa tôi đến gần hơn với giải pháp nhưng một bước quan trọng bị thiếu đối với tôi. Cụ thể, tôi cần thiết để xác định publishProfileRootFolder tài sản cho nhiệm vụ MSBuild như sau:

<Target Name="Publish"> 
    <MSBuild Targets="Build" Projects="$(SolutionDir)\$(ProjectFile)" 
    Properties="DeployOnBuild=true;publishProfile=UAT;publishProfileRootFolder=$(PublishProfileRootFolder);publishUrl=$(PublishUrl)" /> 
</Target> 

Tôi cũng đã chọn để nhúng các giá trị cho $ (PublishProfileRootFolder) trong hồ sơ dự án MSBuild trực tiếp như trái ngược với đi qua nó như một thông số dòng lệnh:

<PropertyGroup> 
    <PublishProfileRootFolder>$(MSBuildProjectDirectory)\MyProjectPath\Properties\PublishProfiles</PublishProfileRootFolder> 
</PropertyGroup> 
1

Đã xảy ra sự cố tương tự ngày hôm nay. Trong trường hợp của tôi, đó là một vấn đề 'quá dài'. Khi tôi rút ngắn tên của hồ sơ xuất bản, gói triển khai web được xây dựng mà không có sự cố.

+0

Tương tự, tôi đã có một. trong tên Hồ sơ xuất bản và được thực hiện nếu không thành công cho đến khi tôi xóa. – Terry

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