2008-11-12 42 views
44

Khi tôi biên dịch một ứng dụng với VS2008 đôi khi tôi kết thúc với 2 tập tin cấu hình giống hệt nhau:Tệp * .vshost.exe.config là gì?

  • * .exe.config
  • * .vshost.exe.config

là gì sau này một cho?

+0

Cảm ơn câu hỏi đã khuấy động cuộc thảo luận. –

Trả lời

25

Đây là bài đăng trên blog nói về quy trình vshost và mục đích của nó.

http://blogs.msdn.com/dtemp/archive/2004/08/17/215764.aspx

+27

Ngoài liên kết bên ngoài, bạn nên thêm ít nhất một lời giải thích nhỏ, để câu trả lời được chứa trong SO và không hoàn toàn phụ thuộc vào tài nguyên bên ngoài có thể biến mất. – JotaBe

14

Khi gỡ lỗi bên trong VS, ứng dụng của bạn sẽ được gọi là [appname] .vshost.exe và do đó tệp .vshost.exe.config là nơi chạy .net sẽ tìm cấu hình của chương trình.

+0

điều gì sẽ xảy ra nếu nó được xuất bản lên máy chủ? Nó có gây ra vấn đề gì không? – batmaci

2

Tôi nhận thấy điều gì đó khác về hành vi này.

Trong khi VS sẽ tạo ra một cấu hình được gọi là [appname] .vshost.exe.config, cuộc gọi API:

var s = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 

không trả lại tên này, chứ không phải nó sẽ trả về: [appname] .config

Điều này đã được sử dụng VS2010. Chưa được kiểm tra trong VS2008

+0

Tôi nghĩ rằng nó bởi vì nếu bạn có VS lưu trữ được kích hoạt trong tab thuộc tính dự án gỡ lỗi nó sẽ được tìm kiếm [appname] .vshost.exe.config. Nhưng nếu bạn đã tắt nó, nó sẽ tìm kiếm [appname] .config. Tôi di chuyển một dự án từ VS2008 -> VS2013 và nó sẽ không đọc tập tin cấu hình không có vấn đề gì nó sẽ trả về null. & vshost.exe.config sẽ không bao giờ tạo ra. Vì vậy, tôi đã phải tắt VS lưu trữ mô tả ở trên, sau đó đổi tên app.config thành [appname] .config & đặt nó vào thư mục bin. Bây giờ nó hoạt động. – drzounds