2012-09-10 16 views
7

Tôi đang cố gắng viết một hệ thống xây dựng cho một trang web để tôi có thể thực hiện một cú nhấp chuột. Tôi đang nhận được một bản sao sạch của mã từ kho lưu trữ mã nguồn và sau đó sử dụng msbuild để chạy một nhiệm vụ AspNetCompiler để làm tất cả các biên dịch trước cho trang web.Tại sao tôi cần thuộc tính VirtualPath cho tác vụ AspNetCompiler

Điều gây nhầm lẫn cho tôi là tôi cần chỉ định VirtualPath hoặc MetabasePath. Tôi không có một đường dẫn metabase - Tôi muốn biên dịch nó thành một thư mục cục bộ mà sau đó có thể được triển khai tới bất kỳ máy chủ nào được chọn (tức là các máy chủ dev đầu tiên sau đó là các máy chủ trực tiếp sau này). VirtualPath là khó khăn vì tôi muốn cùng một mã có thể triển khai thành nhiều địa điểm - mã sử dụng một số chi tiết về bối cảnh và cấu hình để làm việc SiteID của nó hiển thị thông tin khác nhau - vì vậy chỉ định một đường dẫn ảo không có vẻ khôn ngoan.

Có nhiều câu hỏi khác trên cùng một dòng tương tự (ví dụ: VirtualPath in AspNetCompiler MSBuild Task - does it have to be equal to the final deployed Virtual Path?) nhưng câu trả lời duy nhất tôi tìm thấy có vẻ mang tính giai thoại hơn - tức là jsut nói rằng dường như không có sự khác biệt trong trải nghiệm của họ.

Tuy nhiên, tôi không thể tin rằng nó thực sự không tạo ra sự khác biệt nào. Phải có một số tình huống trong đó điều này được sử dụng hoặc nếu không nó sẽ không có ở đó và sẽ không được yêu cầu.

Vì vậy, không ai biết (và tốt nhất là có một tham chiếu) cho những gì điều này không? Vấn đề gì có thể được gây ra bằng cách đi qua một đường dẫn ảo tạo thành nhiệm vụ?

Trả lời

2

Khi xuất bản trang web trong Visual Studio, không bắt buộc phải nhập dữ liệu này (trên thực tế, tôi chưa bao giờ thấy bất kỳ tùy chọn nào). Tôi ngạc nhiên rằng nó là bắt buộc trong một cấu hình MS-Build.

Bạn có thể muốn "đảo ngược kỹ sư" bất kỳ Visual Studio nào sử dụng nhưng phỏng đoán của tôi là nó sẽ là một dấu gạch chéo "/" hoặc một cái gì đó tương tự.

Có nói rằng, yêu cầu có thể liên quan đến issues xung quanh các trang web được biên dịch trước bằng cách sử dụng Nhà cung cấp đường dẫn ảo hoặc Nhà cung cấp tài nguyên.

+0

Vâng, tôi cũng khá ngạc nhiên. Và tôi không chắc chắn làm thế nào để đi về kỹ thuật đảo ngược những gì studio trực quan nào. Mà không biết những gì tài sản được sử dụng cho khó khăn của mình để tìm kiếm những gì Visual Studio đang sử dụng. Bất kỳ đề xuất nào về cách tôi có thể làm điều đó sẽ được đánh giá cao. – Chris

+0

Trong Visual Studio, vào Tools -> Options -> Projects And Solutions (Đánh dấu vào ô "Show All Settings" nếu bạn không thể tìm thấy nó) -> "Build and run". Sau đó đặt độ dài đầu ra thành Chẩn đoán. Mở cửa sổ đầu ra (Ctrl-Alt-O) và thực hiện một bản dựng. Tôi không có một trang web trên máy tính này hoặc tôi đã có một cái nhìn nhanh chóng. –

+0

Đó là một lựa chọn tuyệt vời và có thể giúp gỡ rối một số vấn đề khác mà tôi đã gặp phải. Đáng buồn thay khi nói đến bước tiền biên dịch nó dường như không có bất kỳ đầu ra chẩn đoán đầy đủ nào và chỉ nói thông thường 'Xây dựng thư mục '/ MSReporting/App_Code /'.' Loại công cụ mà không có bất kỳ đầu ra gỡ lỗi bổ sung nào (chẳng hạn như tham số đang được sử dụng). :( – Chris

0

Visual Studio sử dụng dấu gạch chéo ngược duy nhất cho thuộc tính VirtualPath. Chuỗi dòng lệnh đầy đủ được tạo ra trông giống như thế này.

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v \ -p C:\src\Web\WebApplication1\obj\Release\AspnetCompileMerge\Source C:\src\Web\WebApplication1\obj\Release\AspnetCompileMerge\TempBuildDir 
Các vấn đề liên quan