9

Không thực sự chắc chắn về câu hỏi chính xác của tôi, nhưng đây là tình hình:Visual Studio chế độ Administrator trong Windows 10

Tôi có một ứng dụng (WinForms, C# Net) mà tôi đang phát triển trong Visual Studio 2012. Nó thực hiện rất nhiều thứ nhưng bit quan trọng là nó cần phải đọc các tập tin từ một vị trí nhất định.

Trong trường hợp này, vị trí của tệp nằm trên máy chủ và máy của tôi có thiết lập ổ đĩa mạng được ánh xạ để truy cập tệp. Tôi có thể điều hướng thủ công các tệp bằng Windows Explorer.

Tôi có dòng sau trong mã của tôi được làm nổi bật vấn đề:

System.IO.File.Exists("X:\\A Folder\\a_file.txt"); 

Và tập tin đó không tồn tại trong vị trí đó. Tuy nhiên đây là nơi xảy ra sự cố: nếu tôi xây dựng giải pháp và chạy trực tiếp .exe từ thư mục "bin" (nhấp đúp). Mã này là tốt, và nó tìm thấy tập tin. Nhưng nếu tôi chạy nó với studio trực quan thì tôi nhận được một ngoại lệ "không tìm thấy tệp".

Tôi đặt điều này xuống thực tế là Visual Studio đang chạy trong chế độ "Quản trị viên" (Tôi quên lý do tại sao tôi cần điều này, nhưng tôi làm). Bây giờ điều này có ý nghĩa nếu bạn xem xét rằng tài khoản "quản trị viên" không có ổ đĩa "X: \" được ánh xạ. Tuy nhiên, điều này chưa bao giờ là vấn đề cho đến khi tôi nâng cấp lên Windows 10 vào tuần trước.

Vì vậy, câu hỏi của tôi là:

Liệu Visual Studio chế độ quản trị và hoạt động khác trong Windows 10? Trong trường hợp này, nó có xử lý các ổ đĩa mạng được ánh xạ khác nhau không?

Điều đáng chú ý là tôi đã nâng cấp từ Windows 7, vì vậy tôi không thể xác nhận nếu sự cố này cũng có trong 8 và 8.1 hay không.

Và trước khi có ai đó hỏi, hãy chỉ cần nói rằng là một ổ đĩa được ánh xạ. Không có đường dẫn UNC nào được phép!

+0

Có lẽ nó không liên quan đến câu hỏi của bạn, nhưng Windows 10 trong không hỗ trợ hệ thống danh sách của VS 2012 Cập nhật 5. Xem http: // www .microsoft.com/en-us/download/details.aspx? id = 48708. Bạn có thể gặp phải các vấn đề khác trong tương lai. – qxg

+0

@qxg: Có vẻ như tôi vẫn đang cập nhật 4 vào phút, vì vậy tôi có thể di chuyển đến 5 và xem nó có khác biệt không ... – musefan

+0

... không có sự khác biệt về Cập nhật 5 – musefan

Trả lời

5

Vì vậy, tôi đã tìm thấy giải pháp/giải pháp thay thế. Loại hình như là một tiền thưởng lãng phí bây giờ, vì vậy nếu ai đó có những gợi ý tốt hơn thì xin vui lòng gửi và tôi sẽ xem xét chúng và giải thưởng khi áp dụng. Hoặc thậm chí nếu ai đó có thể làm một phiên bản chi tiết hơn về giải pháp của tôi thì tôi sẽ trao giải đó.


Sự cố có thể không cụ thể cho Visual Studio, nhưng sẽ xảy ra với bất kỳ ứng dụng nào đang chạy với đặc quyền nâng cao. Dù sao, các giải pháp tôi tìm thấy là thêm một khóa registry cho phép các ổ đĩa được chia sẻ cùng có thể truy cập được khi chạy trong chế độ quản trị viên.

Việc đăng ký chính vị trí là:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System

Và chìa khóa để thêm được gọi là:

EnableLinkedConnections

Và phải được tạo thành DWORD với giá trị là 1 (0x00000001)

Tôi đã kiểm tra với các máy chạy Windows 7 và chúng KHÔNG có khóa này, nhưng chúng vẫn hoạt động tốt. Vì vậy, tôi hy vọng đây không phải là giải pháp duy nhất, nhưng nó dường như làm việc (không có tác dụng phụ ghi nhận được nêu ra). Tôi sẽ giả định rằng Windows 10 có một thiết lập cụ thể ở đâu đó theo mặc định, ngăn chặn các ổ đĩa được ánh xạ tự động có sẵn với "run as administrator".

Để tham khảo, tôi đã tìm thấy this information here.

Thực tế, here is a more "official" recommendation để sử dụng khóa reg này.

+0

cho bản sửa lỗi nóng này. Tôi không chắc đây có phải là cách khác thay vì thực hiện thủ công hay không.đây là [link] (https://support.microsoft.com/en-us/kb/2878604) – Webruster

2

Điều này dường như không liên quan gì đến Windows 10, chỉ với cấu hình máy của bạn. Những gì bạn mô tả là bình thường và được bao phủ bởi this KB article. Không có gì tôi có thể kiểm tra cho bản thân mình vì vậy chỉ cần thử các cách giải quyết được đề nghị, theo dõi tại superuser.com nếu cần thiết.

+0

Tôi đã thử phương pháp đầu tiên (nó đã được thiết lập để "Nhắc cho sự đồng ý cho các cửa sổ không phải nhị phân", nhưng tôi cũng đã cố gắng như đề nghị để "Nhắc cho sự đồng ý"), điều đó đã không giúp đỡ. Tôi không muốn thử phương pháp .bat ngay cả khi nó hoạt động tôi không muốn nó như một giải pháp. Tôi là nhà phát triển duy nhất có Windows 10 và tôi là nhà phát triển duy nhất có vấn đề (Vì vậy, tôi nghi ngờ đó là vấn đề về chính sách nhóm miền). Vấn đề này chưa bao giờ xảy ra trước khi nâng cấp lên Windows 10. Khi những người IT quay trở lại văn phòng, tôi sẽ xem xét nó để xem liệu tôi có thể xác định đây là vấn đề GP hay không, nhưng tôi không bị thuyết phục – musefan

+0

Hmm, để Khóa đăng ký EnableLinkedConnections được đề cập trong bài viết không hữu ích cho bạn chút nào? Bummer .. –

+0

Thậm chí không thấy rằng, có lẽ họ nên di chuyển đến phần "Giải pháp" nơi họ đưa ra các đề xuất khác để khắc phục sự cố. Tôi đã cho bạn tiền thưởng vì nó hết hạn sau một vài phút (và tôi cảm thấy xấu vì thiếu bit chỉnh sửa reg), nhưng tôi không đặc biệt đánh giá nó như một câu trả lời hay ... về cơ bản nó là giải pháp "chỉ liên kết" – musefan

0

Những người dùng khác nhau/nhiệm vụ hệ thống có thể đang chạy. Như vậy, bạn có ổ đĩa X được ánh xạ, nhưng những người khác thì không. Bạn có thể thực hiện ánh xạ ổ đĩa trên những người dùng bổ sung trên bản cài đặt Windows của bạn. Như bạn đã nói, đây không phải là vấn đề chỉ có Windows 10 mà còn là Windows 7+ và các đặc quyền nâng cao.

Có thể bạn có thể sử dụng tham số đã định cấu hình cho đường dẫn X: và tải khi chạy hoặc thậm chí thử sử dụng đường dẫn UNC sẽ giải quyết khi chạy và không cần ổ đĩa được ánh xạ.

\\ServerNameOrIP\A Folder\a_file.txt. 

Trong mã này, bạn sẽ cần:

System.IO.File.Exists("\\\\ServerName\\A Folder\\a_file.txt"); 
Các vấn đề liên quan