Làm cách nào để phát hiện tôi đang chạy dưới chế độ mono-service2? (trong C# /. NET 3.5, chạy mono 2.6.7 trên ubuntu 11)Làm thế nào để phát hiện nếu tôi đang chạy trong dịch vụ đơn?
Type.GetType("Mono.Runtime")
cho tôi biết tôi đang chạy đơn, vì vậy phần đó là ok. Nhưng Environment.UserInteractive
luôn luôn là sai theo mono có vẻ như vậy, vì vậy tôi đang đấu tranh để tìm ra nếu tôi thực sự chạy dưới mono-service2 - không có console/thiết bị đầu cuối.
Tnx. Các 'FriendlyName' hack hoạt động tốt. Nhưng ... Nó không lý tưởng (vì vậy tôi để lại câu hỏi này chưa được trả lời trong một thời gian dài :). Lộn xộn với FriendlyName ảnh hưởng đến việc ghi nhật ký của tôi và sẽ tốt hơn nếu bạn không phải nhớ tùy chọn -m cho dịch vụ đơn nhất. Nhưng hey; dù sao cũng cảm ơn bạn. Tôi sẽ tìm ra thứ gì đó. Và bây giờ tôi ít nhất là _have_ một giải pháp. – BaBu
Tôi tìm thấy một cách để tìm hiểu xem có một giao diện điều khiển/thiết bị đầu cuối có sẵn hoặc không theo mono trên linux: 'Mono.Unix.Native.Syscall.isatty (0)'. Điều này sẽ không hoạt động trên các cửa sổ nhưng tất nhiên có các công trình Environment.UserInteractive. – BaBu
@BaBu: vâng, ý tưởng hay. khi v4.5 có sẵn, điều này cũng sẽ hữu ích: http://msdn.microsoft.com/en-us/library/system.console.isoutputredirected(v=vs.110).aspx –