2013-08-09 19 views
9

Khi thiết lập công việc triển khai Jenkins, tôi tiếp tục gặp phải lỗi này khi cố gắng triển khai dự án Web Visual Studio 2012 qua dòng lệnh.IIS WebDeploy sử dụng MS Build Fails với lỗi MSB4044 -ConcatFullServiceUrlWithSiteName nhiệm vụ

lỗi MSB4044: Các "ConcatFullServiceUrlWithSiteName" nhiệm vụ đã không đưa ra một giá trị cho các tham số cần thiết "SiteAppName"

Để tham khảo, đây là những thông số mà tôi đã sử dụng:

/p:Configuration=Release /t:Rebuild /p:VisualStudioVersion=11.0 /p:PublishProfile="DeployToDevServer" 
/p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish 
/P:AllowUntrustedCertificate=True /p:MSDeployPublishMethod=WMSvc 
/p:MsDeployServiceUrl=https://devmachine.server.com:8172/MsDeploy.axd 
/p:username=domainhere\adminuserhere /p:password=adminpasshere 

Lưu ý: Nó sẽ triển khai tốt nếu tôi chọn Publish ... từ bên trong dự án.

Trả lời

5

Sau nhiều lần googling, và cuối cùng so sánh một dự án sẽ triển khai với dự án không, tôi cuối cùng đã tìm ra sau khi tôi mở tệp .csproj bằng trình chỉnh sửa văn bản và so sánh chúng. Trong dự án mà làm việc, tôi thấy phần này:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 

Và nó có dòng này:

<DeployIisAppPath>Default Web Site/sitenamehere</DeployIisAppPath> 

tôi đã thêm dòng này cùng với các dự án không làm việc, thay đổi tên trang web, và nó đã làm việc. Hy vọng điều này sẽ giúp người khác.

+0

Tôi chỉ thêm tên sitename như đã được cấu hình trong IIS và nó làm việc cho tôi (không có 'Web site mặc định') – malckier

+0

Bạn chỉ cần thực hiện 'Default Web Site/sitenamehere' nếu' sitenamehere' là một ứng dụng trong 'Default Web Site'. Nếu bạn thêm một trang web mới là anh chị em của 'Trang Web Mặc Định' thì nó sẽ chỉ là' sitenamehere'. –

4

Bạn có thể chuyển DeployIisAppPath này làm tham số cho Jenkins, như sau: p: DeployIisAppPath = Trang web mặc định/sitenamehere Điều này sẽ cho phép bạn có các tên gọi khác nhau trên các máy khác nhau. Trong khi trong ví dụ của bạn (với csporj nodification), bạn sẽ phải có một tên site IIS trên tất cả các máy đích

+0

Đây thực sự là cách chính xác để thực hiện nếu bạn muốn triển khai thông qua dòng lệnh hoặc máy chủ TeamCity./p: DeployIISAppPath đã làm việc cho tôi. CẢM ƠN BẠN! – Roboblob

+0

Đây là một chút không rõ ràng. Đây là một tham số MSBuild, không phải là một thiết lập cụ thể của Jenkins hoặc TeamCity. Cảm ơn! –

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