2013-06-25 32 views
14

Tôi có một dự án C# trong Visual Studio 2010 và tôi muốn chạy/gỡ lỗi ứng dụng của tôi với một biến môi trường cụ thể tại chỗ.Đặt biến môi trường gỡ lỗi/chạy trong dự án Visual Studio 2010 C#?

Điều này đánh tôi là một tính năng có thể tồn tại ở đâu đó, nhưng tôi không thể tìm thấy nó mặc dù có một số tìm kiếm mở rộng. This question liên quan đến năm 2008 trở xuống và không chứa câu trả lời giúp tôi. This question liên quan đến quá trình xây dựng, không phải là hành động gỡ lỗi/chạy.

Tôi đánh giá cao một công việc xung quanh sẽ là bắt đầu IDE của tôi với các biến môi trường tại chỗ, nhưng tôi muốn kiểm soát điều này từ IDE. Điều này có thể không?

+0

Nếu tôi hiểu: bạn có muốn quản lý một biến môi trường vào IDE và chuyển đến ứng dụng của bạn khi đang chạy không? – michele

+0

@michele Tôi muốn bắt đầu phiên gỡ lỗi và chỉ định một biến môi trường sẽ được cung cấp cho ứng dụng của tôi. Trong Eclipse, điều này sẽ đạt được một cách nhỏ nhặt bằng cách sử dụng "Chạy cấu hình". –

+0

Bạn đã thử sử dụng các tệp cấu hình chưa? – michele

Trả lời

5

Điều này có thể trong IDE C++, không phải là IDE C#. Tôi đoán nó đã được bỏ qua cố ý vì C# có cách tốt hơn để cấu hình một chương trình. Biến môi trường rất khó xử vì chúng yêu cầu trình cài đặt tinker với môi trường hệ thống của người dùng khi ứng dụng được triển khai. Đó là giòn, một trình cài đặt khác có thể dễ dàng phá hủy điều đó và chúng thường làm.

Cách C# là sử dụng cài đặt ứng dụng. Dự án + Thuộc tính, tab Cài đặt.

Cách thay thế có thể là sử dụng đối số dòng lệnh. Bạn sẽ nhận được nó trong phương thức Main() của bạn, bạn chỉ định một giá trị trong tab Project + Properties, Debug.

Bạn vẫn có thể có được những gì bạn muốn với một thủ thuật mà có sử dụng C++ IDE để bắt đầu chương trình của bạn:

  • Thêm một dự án mới để giải pháp của bạn và chọn Visual C++, General, Makefile mẫu dự án.
  • Nhấp vào Hoàn tất ngay lập tức, trình hướng dẫn sẽ hỏi quá nhiều câu hỏi.
  • Nhấp chuột phải vào dự án đã thêm, Thuộc tính, chọn nút NMake.
  • Chỉnh sửa cài đặt "Xây dựng dòng lệnh" và đặt thành "echo Done".
  • Chỉnh sửa cài đặt "Đầu ra", đặt thành đường dẫn đầy đủ của tệp thực thi C# của bạn.
  • Chọn nút Gỡ lỗi, thay đổi loại Trình gỡ lỗi thành Chỉ quản lý.
  • Và bạn sẽ thấy cái bên dưới, thứ bạn muốn, chỉnh sửa cài đặt "Môi trường".
  • Nhấp chuột phải vào dự án một lần nữa, chọn "Đặt làm dự án khởi động".
+4

Sử dụng biến môi trường không nhất thiết yêu cầu trình cài đặt sửa đổi môi trường hệ thống của người dùng. Biến môi trường là phạm vi cho mỗi quá trình, thường kế thừa từ hệ thống, nhưng không phải lúc nào. Đó là lý do tại sao 'ProcessStartInfo.EnvironmentVariables' tồn tại. Trong một ứng dụng đa tiến trình, chúng là một phương tiện thay thế để cung cấp cấu hình khởi động cho một chương trình khi dòng lệnh args API không thể được sửa đổi hoặc sử dụng. IMO bỏ qua cài đặt này cho trình sửa lỗi C# là một lỗi. – nicholas

+0

Một trường hợp khác trong đó điều này hữu ích là khi bạn đang phát triển một ứng dụng sẽ được lưu trữ bởi một bên thứ ba liên lạc thông tin với chương trình của bạn thông qua các biến môi trường. Các biến môi trường còn sống và tốt, và chúng có nhiều công dụng. Bỏ qua chúng là một sai lầm chắc chắn. –

8

Nó không phải là sạch như thiết lập nó từ bên ngoài ứng dụng đang được gỡ rối, nhưng bạn có thể thêm vào một cái gì đó Main như thế này (NB Tôi là một lập trình viên VB):

#if (DEBUG) 
    Environment.SetEnvironmentVariable("YourVar", "YourVal"); 
#endif 
2

Đối với C# gỡ lỗi với các biến môi trường trong Visual Studio 2013, những gì tôi làm là mở "Developer Command Prompt cho VS2013" trong menu Start trong Visual Studio. Từ dấu nhắc lệnh, tôi thiết lập các vars môi trường mà tôi muốn và sau đó chạy "devenv.exe" để khởi chạy Studio. Tiếp theo mở một giải pháp và bắt đầu gỡ lỗi.

Hãy nhớ rằng nếu bạn muốn thay đổi môi trường của bạn vars, bạn sẽ cần phải ngừng gỡ lỗi, bỏ studio trực quan và sau đó tinh chỉnh các lọ trong dấu nhắc lệnh mở, sau đó bắt đầu lại. Hãy nhớ rằng một môi trường di chuyển về phía trước như là một quá trình (CMD.EXE) khởi chạy tiếp theo (DEVENV.EXE) và sau đó tiếp theo (YourApp). Thay đổi ngay từ đầu không được chuyển tiếp, bạn cần phải bắt đầu chuỗi.

+0

Tôi thấy đây là một giải pháp đơn giản và hiệu quả hơn câu trả lời được chấp nhận (cho tôi, dù sao) –

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