2012-03-08 22 views
6

Tôi chỉ cần tạo gói Web Deployement bằng cách sử dụng TFS build và không muốn triển khai nó tự động trong IIS.Cách tạo gói triển khai một mình bằng cách sử dụng TFS

Tôi đã thêm bên dưới hai tham số trong xây dựng Definition -> MSBuild Arguments

/p: CreatePackageOnPublish = true/p: DeployOnBuild = true

Các probelm là tôi không nhận được Tệp ZIP ở vị trí thả và nhận được lỗi dưới đây.

C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.targets (1657): Các "MapUriToIisWebServer" nhiệm vụ thất bại bất ngờ. System.Runtime.InteropServices.COMException (0x80005000): Unknown lỗi (0x80005000) tại System.DirectoryServices.DirectoryEntry.Bind (Boolean throwIfFail)
tại System.DirectoryServices.DirectoryEntry.Bind() tại System.DirectoryServices.DirectoryEntry .get_IsContainer() tại System.DirectoryServices.DirectoryEntries.CheckIsContainer() tại System.DirectoryServices.DirectoryEntries.Find (string name, string schemaClassName) tại Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion() tại Microsoft .Web.Publishing.Tasks.MapUriToIisWebServer.Execute() tại Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build. BackEnd.ITaskExecutionHost.Execute() tại Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask (ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket xô, TaskExecutionMode howToExecuteTask, Boolean & taskResult)

gì có thể là vấn đề?


Bây giờ tôi nhận được lỗi khác nhau

lỗi:. Nhiệm vụ triển khai Web thất bại (Object kiểu 'biểu hiện' và đường dẫn 'e: \ TFS \ Dev \ ApplicationName \ Binaries \ Release_PublishedWebsites \ ApplicationName_Package \ ApplicationName.SourceManifest.xml 'không thể được tạo.)

lỗi: Đối tượng của loại' biểu hiện 'và đường dẫn' e: \ TFS \ Dev \ ApplicationName \ Binaries \ ReleaseName \ SourceManifest.xml 'không thể tạo.

lỗi: Một hoặc nhiều mục trong tệp kê khai 'sitemanifest' không hợp lệ.

lỗi: Ứng dụng '/ ApplicationName' không tồn tại trong trang web 'Trang web mặc định'.

+0

Mọi thứ đều có sẵn? – Gansun

+0

Các thuộc tính này làm cho đường dẫn xuất bản web sử dụng cài đặt dự án của bạn trừ khi bạn ghi đè chúng. Bạn có thể cho chúng tôi biết cách cài đặt liên quan đến xuất bản của bạn được định cấu hình trong thuộc tính của dự án không? –

+0

"Tạo gói triển khai dưới dạng tệp ZIP" được chọn – Gansun

Trả lời

5

Tôi tin rằng bạn chỉ cần thêm mục tiêu 'Gói' vào bản dựng của bạn cho dự án web.

/t:Build;Package 

Tôi đã sử dụng mục tiêu đó trong bản dựng tfs để tạo thư mục _PublishedWebsite với gói zip trong một thời gian với thành công.

EDIT: Giải thích về gói mục tiêu Nếu bạn nhìn vào tập tin csproj bạn cho ứng dụng web của bạn như là một tập tin XML, bạn sẽ thấy rằng nó bao gồm những điều sau

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

này bao gồm một loạt các mục tiêu web vào quá trình xây dựng của bạn. Mở tệp này ra và ở dưới cùng, bạn sẽ thấy nó lần lượt bao gồm

<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" /> 

Tệp này chứa định nghĩa về quy trình triển khai Web cho MSBuild. Bạn sẽ thấy rằng nó tuyên bố một biến để biểu thị "mục tiêu" để gọi trên triển khai là "trọn gói"

<DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget> 

Nếu bạn đọc qua tập tin này hơn nữa nó sẽ cung cấp cho bạn một ý tưởng về cách Đóng gói và triển khai làm việc dưới vỏ bọc và những gì thiết lập các thuộc tính và mục tiêu là bạn có thể thao tác để tùy chỉnh xây dựng của bạn.

câu chuyện dài ngắn tuy nhiên, nếu bạn gọi

msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release 

Nó nên xây dựng cho bạn những gói triển khai web cho các cấu hình phiên bản của ứng dụng của bạn.

+1

Bạn có thể giải thích thêm về điều này không? – Gansun

+0

vì vậy '/ p: CreatePackageOnPublish = true' là không đủ, chúng ta cần phải gọi chính mục tiêu gói? –

0

tôi đã cùng một vấn đề và điều duy nhất mà giải quyết nó là thế này:

  1. mở Quản lý IIS của bạn console
  2. Đến Default Web Site của bạn
  3. Thêm ứng dụng mới có tên 'ApplicationName'
  4. Chạy lại msbuild. Nó sẽ hoạt động.
0

có thể trùng lặp của MSBuild DeployOnBuild=true not publishing

tôi đã cùng một vấn đề với Atlassian tre, và điều này cố định nó cho tôi: Từ một máy với Visual Studio sao chép nội dung của "C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web "tới máy chủ TFS Build.

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