2009-05-15 14 views
5

Tôi có một ứng dụng ASP.NET dựa trên một hội đồng bên ngoài không có trong GAC. Ứng dụng có tệp .refresh sao chép tệp vào thư mục bin khi ứng dụng được biên dịch.làm thế nào để bạn làm mới tài liệu tham khảo trong các ứng dụng ASP.NET mà không cần studio trực quan?

Khi tôi cài đặt ứng dụng trên máy chủ sản xuất (bằng cách sao chép tệp ứng dụng vào thư mục ảo), thư mục bin không tự động cập nhật khi có tệp .refresh như tôi nghĩ. Tôi đã thử bằng cách sử dụng công cụ aspnet_compiler nhưng điều đó không làm việc vì nó hy vọng các hội đồng được trong thư mục bin rồi.

Làm thế nào để có được .NET để cập nhật thư mục bin của ứng dụng mà không cần studio trực quan?

Trả lời

1

Các tập tin .refresh chỉ có để VS biết rằng nó nên theo dõi các bản chính, và nếu họ đã thay đổi, sao chép một phiên bản mới vào thư mục/bin. Chúng chỉ là các tệp văn bản có đường dẫn đến bản gốc - ngày sửa đổi được sử dụng để so sánh.

Khi bạn nói:

Khi tôi cài đặt ứng dụng trên máy chủ sản xuất (bằng cách sao chép các tập tin ứng dụng vào một thư mục ảo), thư mục bin không được cập nhật tự động.

Ý của bạn là chính xác? Bạn cũng không sao chép nội dung của thư mục bin vào máy chủ sản xuất? Bạn sẽ cần triển khai bất kỳ assembly phụ thuộc nào với ứng dụng.

+0

Không, tôi không sao chép nội dung của thư mục bin. Tôi đã giả định rằng, kể từ khi lắp ráp tham chiếu được cài đặt riêng biệt, rằng nó sẽ cần phải được cũng được cài đặt trên máy sản xuất và cài đặt sẽ được sao chép tự động vào thư mục bin. Vì vậy, tôi nghĩ rằng điều này có nghĩa rằng nếu tôi sao chép lắp ráp là tốt, sau đó tôi không cần phải lo lắng về việc cài đặt nó trên máy sản xuất ở nơi đầu tiên. nó sẽ chỉ là một phần của quá trình cài đặt ứng dụng. – Ferruccio

+0

Vâng, thành thật mà nói, phụ thuộc vào trình cài đặt - nếu tất cả nó là giải nén một số tệp (mẫu, trợ giúp và dll), thì không, bạn sẽ không phải cài đặt máy sản xuất, chỉ cần sao chép các DLL được tham chiếu . Nếu nó làm công cụ cấu hình khác, sau đó bạn sẽ cần phải chắc chắn rằng các bước được hoàn thành trên máy sản xuất.Nhưng nói chung, nếu bạn có thể chạy nó cục bộ với dll trong thư mục bin, thì bạn sẽ có thể chỉ sao chép chúng vào sản xuất. –

0

Xoá thư mục bộ nhớ cache của asp.net có thể giúp:

C:\WINDOWS\Microsoft.NET\Framework\ 
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME 
+0

không. không giúp được gì. – Ferruccio

0

Xóa các tệp .refresh đó.

Thực hiện một xây dựng kịch bản đơn giản (sử dụng bất cứ điều gì bạn muốn cmd, Nant, Rake, psake ...) rằng:

  • bản sao các tập tin để asp.net ứng dụng thư mục của bạn
  • build bạn asp. ứng dụng net.

Hoặc bạn có thể chỉnh sửa file csproj của bạn và thêm một cái gì đó như:

<ProjectExtensions> 
    <PropertyGroup> 
    <PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent> 
    </PropertyGroup> 
</ProjectExtensions> 

này sẽ thêm một xây dựng hành động trước đó sẽ sao chép các tập tin dll của bạn vào thư mục đầu ra của asp của bạn. ứng dụng net. Bạn sẽ phải xây dựng nó với MsBuild

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