2012-03-01 20 views
34

tôi tìm thấy những thông tin sau về Visual Studio file Microsoft "thêm":Vô hiệu hóa * .vshost.exe và các tập tin linh tinh từ được tạo ra trên build

What is the purpose of the vshost.exe file?

Câu hỏi của tôi là, là có một cách rằng tôi không thể có các tệp .pdb, .manifest và vshost.exe được thực hiện? Hay họ hoàn toàn cần thiết?

Tôi chỉ nhận thấy rằng sau khi gỡ lỗi, nó vẫn hiển thị như một quá trình đang chạy trong máy của tôi khiến tôi lo lắng vì tôi đã đóng nó.

+1

Dường như với tôi rằng bạn không thực sự hiểu những gì anh ấy nói trong bài đăng của anh ấy. .vshost là cần thiết để bắt đầu nhanh chóng phiên gỡ lỗi của bạn. Không có gì phải lo lắng về. – Steve

+0

nhưng tôi cũng tìm thấy vshost.exe đang chạy đôi – gumuruh

Trả lời

59

Chuyển sang cấu hình Phát hành. Sau đó, Dự án + Thuộc tính, tab Gỡ lỗi, bỏ chọn tùy chọn "Bật quy trình lưu trữ Visual Studio". Xây dựng + Làm sạch, bạn có thể xóa mọi thứ còn lại và nó sẽ không quay lại. Tùy chọn này được bật theo mặc định cho bản dựng Bản phát hành, được cho là, một chút sai sót nhưng có thể bảo vệ.

Quy trình lưu trữ là phiên bản được lưu trữ tùy chỉnh của CLR. Chính xác những gì nó làm là không tài liệu tốt nhưng nó có liên quan đến cấu hình các thiết lập bảo mật của AppDomain chính. Tôi chưa bao giờ nghe bất cứ ai phàn nàn về việc đấu tranh với các vấn đề CAS mà không có nó, nhưng sau đó nó là bất thường để tắt nó đi và ứng dụng của bạn hầu như luôn luôn chạy hoàn toàn tin tưởng khi gỡ lỗi từ IDE. Nó sẽ là vấn đề nếu bạn xây dựng một mạng chia sẻ trên các phiên bản đầu của .NET. Điều duy nhất rõ ràng là vô hiệu hóa nó là bất cứ thứ gì bạn viết với Console.Write trong một ứng dụng kiểu gui sẽ không còn xuất hiện trong cửa sổ Output. Nó không có gì để làm với tốc độ như tuyên bố trong câu trả lời cao upvoted trong liên kết, các khuôn khổ DLL lõi đã cư trú trong RAM kể từ khi VS và MSBuild sử dụng chúng.

Điều tốt nhất cần làm là đừng lo lắng quá nhiều. Một dự án thiết lập và triển khai sẽ bỏ qua nó.

+1

Thật tuyệt khi vô hiệu hóa nó từ các bản dựng cho 'các dự án chỉ có nội dung'. –

+0

Cảm ơn bạn. Tôi đã có một dự án nâng cấp từ VS2008 -> VS2013 từ chối đọc tệp app.config.Sau đó, tôi đã học được rằng nó đã được tìm kiếm cho XXX.vshost.exe.config mà không được tạo ra thông qua AppDomain.CurrentDomain.SetupInformation.ConfigurationFile. Vì vậy, tôi tắt nó như trên. Sau đó, tôi phải đổi tên tệp app.config thành {projectName} .config, đặt nó vào thư mục bin và cuối cùng nó đã hoạt động. – drzounds

+0

Dường như tùy chọn "Bật Visual Studio lưu trữ" không còn tồn tại trong VS2017 và có vẻ như dự án chạy như exe được xác định, thay vì vshost.exe. Có lẽ vshost là một điều của quá khứ như của VS2017? – HotN

1

Về file vshost, ít nhất là trong VS2010:

  • Họ không được tạo vào xây dựng, nhưng về lựa chọn xây dựng cấu hình (nó sẽ được tạo trong phiên bản khi chúng ta chọn phát hành lần đầu tiên) và trên thiết lập "Kích hoạt quá trình lưu trữ Visual Studio" thành true. (Theo cấu hình gỡ lỗi và tùy chọn này được đặt thành true là mặc định, vshost.exe sẽ được tạo trong bin/debug khi mở VS với dự án đích theo mặc định.)
  • Chúng không được làm sạch để xây dựng lại hoặc làm sạch dự án, nhưng chỉ bằng tay khi "Kích hoạt quá trình lưu trữ Visual Studio" là sai nếu VS với dự án đó được mở. (Và nó sẽ không được tạo ra nữa khi mở dự án này.)

Nếu tùy chọn cờ này là đúng và VS với dự án đích được mở, tệp này không thể bị xóa khi đang được sử dụng. Một khi nó được bỏ chọn, vshost.exe có thể bị xóa ngay lập tức.

Tóm tắt: Tạo và xóa những tệp này không liên quan đến quá trình tạo.

Ngoài ra, tôi có thể thêm tùy chọn đó "Bật quy trình lưu trữ Visual Studio" trong các dự án được tham chiếu là thư viện lớp không được xem xét. Tùy chọn này chỉ được xem xét cho dự án đích tạo tập tin thực thi.

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