Câu hỏi Tập tin dll.refresh trong ASP.Net là gì?


Trong dự án web ASP.Net của chúng tôi, chúng tôi dường như có một số tệp .refresh được liên kết với một số Dll bên thứ ba mà chúng tôi đang sử dụng. Bất kỳ ý tưởng chúng là gì và cách thức / khi chúng được tạo ra?


76
2017-11-03 16:19


gốc




Các câu trả lời:


Các tệp này cung cấp đường dẫn đến DLL trong câu hỏi để cho Visual Studio biết nơi tìm thấy nó (bạn có thể kiểm tra điều này nếu bạn mở chúng trong trình soạn thảo văn bản). Chúng sẽ được tạo mỗi lần bạn thêm tham chiếu mới vào dự án.

Họ thường xuất hiện khi bạn đang sử dụng một loại dự án mà không tạo ra một tệp dự án Visual Studio tiêu chuẩn, như thường đường dẫn đến DLL tham chiếu sẽ đi vào đó.


61
2017-11-03 16:25



Tìm một bản làm mới đang hoạt động - và đó cũng có thể là con đường chính xác. Đường dẫn tương đối là cách tôi thiết lập ../ - niico


Từ đây:

Trong một dự án ASP.NET, việc thêm một tham chiếu dựa trên tệp sẽ thêm một tệp .refresh vào thư mục Bin. Khi dự án nằm dưới sự kiểm soát nguồn, tệp này sau đó được thêm vào điều khiển nguồn. *.dll.refresh các tệp phân tán thư mục bin. Mỗi khi bạn thêm một tham chiếu bên ngoài, bạn sẽ tìm thấy một tập tin dll.refresh ngay bên cạnh nó. Những dll.refresh các tệp là một ngoại lệ đối với quy tắc và chúng nên đi vào kiểm soát nguồn. Cách duy nhất mà dự án web của bạn sẽ biết nơi tham chiếu của nó trực tiếp.


32
2017-11-27 18:56



Sao chép một phần từ monsur.xanga.com/437206798/dllrefresh-and-aspnet - Pekka 웃
Xin chào SharpUrBrain, có vẻ như bạn vừa sao chép hầu hết nội dung này từ liên kết ở trên. Bạn có thể chỉnh sửa bài đăng của mình và ghi nhận tác giả cho tác giả không? Đạo văn không được hoan nghênh trên Stack Overflow, và nó luôn luôn tốt đẹp để cung cấp tín dụng mà tín dụng đến hạn. Cảm ơn! - Pekka 웃
Tệp dll được tham chiếu bởi tệp mới có phải là định dạng .net không? Có tập tin mới tươi trong C + + DLL? - Gqqnbig


Một số thông tin về các tệp làm mới sau khi dùng thử và lỗi. Những thí nghiệm này đã được thực hiện với Visual Studio 2012. Các tài liệu tham khảo đã được thêm vào một dự án web C # asp.net.

Như đã được thảo luận, thêm một tham chiếu đến một hội đồng thông qua trình duyệt thêm một tập tin .refresh. Tuy nhiên, nếu có thêm DLL phụ thuộc vào DLL được thêm vào một cách rõ ràng trong thư mục mà bạn thêm vào, thì những người phụ thuộc cũng được thêm vào hoàn toàn, nhưng không có tệp .refresh! Vì vậy, ví dụ, tôi thêm một tham chiếu đến "MyAssembly.dll" Tôi cũng sẽ nhận được "MyAssembly.dll.refresh". Nhưng nếu có một hội đồng "MyDependentAssembly.dll" mà "MyAssembly.dll" phụ thuộc vào tôi sẽ không nhận được một "MyDependentAssembly.dll.refresh". Vì vậy, những gì xảy ra là một hội đồng được làm mới nhưng không phải là người phụ thuộc của nó! Bạn phải thêm từng tệp DLL theo thứ tự phụ thuộc ngược lại và sau đó mọi thứ sẽ hoạt động tốt hơn.

Một số điều khác phải cẩn thận. Thêm "MyAssembly.dll" cũng sẽ thêm "MyAssembly.pdb" nếu nó hiện diện. Ngoài ra "MyAssembly.xml" sẽ được thêm vào các tham chiếu nếu nó có mặt. Hai tệp này cũng sẽ làm mới khi "MyAssembly.dll.refresh" xuất hiện.

Nhưng, khi nào Visual Studio quyết định tìm kiếm các tệp làm mới? Bây giờ hãy nhớ rằng, trong một dự án web, tệp dự án không theo dõi cụ thể các tham chiếu của DLL. Bạn sẽ không tìm thấy tệp DLL được liệt kê trong tệp dự án chỉ phụ thuộc vào dự án. Vậy khi nào thì việc làm mới xảy ra?

Câu trả lời cho khi làm mới xảy ra là trong quá trình xây dựng khi hội đồng tham chiếu phải được tải. Điều đó có nghĩa, mặc dù xây dựng một trang web có thể cập nhật sẵn có thể không lấy tất cả các tệp DLL. Tôi tiếp tục có một DLL mà sẽ không làm mới và sau đó tôi nhận ra nó đã được sử dụng chỉ bên trong một tập tin .ascx. Bỏ chọn hộp kiểm "Cho phép trang được biên dịch sẵn có thể cập nhật" trong trang dự án MSBuild Options đã khắc phục sự cố đó cho tôi.

Tuy nhiên nếu bạn thêm DLL tham chiếu được tải thông qua sự phản ánh trong mã của bạn, chúng sẽ không được cập nhật thông qua tham chiếu. Bạn sẽ phải sử dụng các sự kiện xây dựng để sao chép chúng vào thư mục bin.


4
2018-04-11 21:27



Tôi nghĩ khi bạn nói 'dự án web', bạn có nghĩa là 'trang web'. - J. Polfer