Tôi đang kéo tóc ra khỏi vấn đề MSBuild này.Làm thế nào tôi có thể tránh cấu trúc thư mục sâu này với MSDeploy đến hệ thống tập tin bằng cách sử dụng MSBuild?
Chúng tôi đang sử dụng TeamCity để xây dựng giải pháp với hai trang web MVC trong đó. Là một phần của bản dựng chúng tôi đang triển khai vào một thư mục trên máy chủ xây dựng. IIS trỏ đến thư mục này để cung cấp cho chúng ta một tích hợp xây dựng có thể nhìn thấy để quản lý.
Đây là mã từ tệp MSBuild sử dụng MSDeploy để xuất bản gói - chứ không phải dưới dạng tệp zip.
<Target Name="Deploy">
<MSBuild
Projects="$(SolutionFile)"
Properties="Platform=$(Platform);Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageLocation);
PackageAsSingleFile=False;
AutoParameterizationWebConfigConnectionStrings=False" />
</Target>
Vấn đề ở đây là chúng tôi có cấu trúc thư mục cực kỳ sâu. Đây là một ví dụ ...
C: \ DEPLOY \ Lưu trữ \ Nội dung \ C_C \ Users \ Edmond \ Documents \ Visual Studio 2008 \ CreatioGreen \ Creatio \ Mã \ core \ trunk \ Website \ Website \ obj \ Release \ Gói \ PackageTmp [file xuất bản]
tôi thực sự muốn triển khai đến các thư mục có thể dự đoán như ...
C: \ build \ website [file xuất bản] C: \ build \ mobilewebsite [file xuất bản]
Đó là nền. Dưới đây là những câu hỏi cụ thể.
Có phải chúng tôi đang cố gắng sử dụng MSDeploy để xuất bản lên hệ thống tệp cục bộ không? Về cơ bản chúng tôi cần tương đương với tính năng "xuất bản" của VS2010, với các biến đổi cấu hình. Chúng tôi không cố gắng triển khai các cá thể IIS từ xa hoặc bất kỳ thứ gì.
Có cách nào để thực hiện việc này nhưng chỉ định thư mục xuất bản không?
Tôi đã cố gắng sử dụng tác vụ Sao chép MSBuild để sao chép các tệp vào các thư mục hợp lý hơn - nhưng tôi không thể tìm hiểu cách sử dụng ký tự đại diện để chỉ định thư mục chúng tôi cần thực hiện một cái gì đó giống như ...
C: \ FolderPackageEndsUpIn [ANYFOLDERS] \ website [ANYFOLDERS] \ PackageTmp * *.
Trợ giúp!
Cám ơn trả lời, kateroh! Điều này đã giúp. – centralscru
Tôi đã làm nó như thế này cho đến khi tôi phát hiện ra rằng tôi không thể chuyển đổi Web.config để làm việc. Bất kỳ ý tưởng về cách làm điều đó mà không sử dụng các mục tiêu gói? –
Bạn có thể giải quyết vấn đề này của biến đổi Web.config bằng cách tạo quy tắc bỏ qua thay thế sẽ làm cho việc triển khai web bỏ qua đồng bộ web.config và thay thế web.release.config bằng web.config. Đây là một bài đăng trên blog về bỏ qua các quy tắc để bạn bắt đầu: http://blogs.iis.net/msdeploy/archive/2008/05/23/how-to-write-skip-and-replace-rules-for- msdeploy.aspx – kateroh