Nội dung của tập tin khác nhau tùy thuộc vào việc chạy IDE IDE với tư cách quản trị viên hay không?


2

Trong Windows 7, sử dụng Windows Explorer, tôi đã lưu một bản sao lưu của tệp C: \ Program Files \ Microsoft Visual Studio \ VC98 \ ATL \ Bao gồm \ ATLCOM.H bằng cách đổi tên nó ra khỏi đường đi và sau đó tôi sao chép một tệp mới, tập tin hơi khác nhau vào vị trí (như ATLCOM.H trong cùng thư mục).

Sau đó, tôi đã mở Microsoft Visual C ++ 6.0 IDE và biên dịch dự án của mình (dựa trên ATLCOM.H). Tôi nhận thấy rằng tệp thực thi được biên dịch hành xử như thể tôi đã không thực hiện các thay đổi của mình.

Vì vậy, sau đó (để kiểm tra xem tôi có thực sự thay đổi hay không) Tôi đã mở tệp từ bên trong IDE. Những thay đổi của tôi KHÔNG có mặt. Nhưng nếu tôi mở tệp trong một số trình soạn thảo khác, thì có những thay đổi. Nói chung, tôi đã thử mở tệp với bốn chương trình riêng biệt; ngoại trừ VC ++ 6.0, các thay đổi của tôi sẽ xuất hiện khi tệp được mở trong tất cả chúng. Hơn nữa, nếu tôi thực hiện một thay đổi khác cho tệp từ bên trong VC ++ 6.0 và lưu nó, nội dung của tệp dường như không bị ảnh hưởng khi xem từ bên trong các chương trình khác, nhưng nếu tôi đóng VC ++ 6.0 và mở lại, thì tôi đã thay đổi trong VC ++ 6.0 vẫn còn đó. Vì vậy, nó được ghi vào đĩa ở đâu đó.

Sau đó, tôi phát hiện ra rằng nếu tôi khởi động VC ++ 6.0 thông qua "Run As Administrator", nội dung của tệp trông (từ bên trong VC ++ 6.0) giống như chúng nhìn từ bên trong các chương trình khác. Nếu tôi khởi động nó mà không có "quản trị viên", họ sẽ khác.

Tôi đoán rằng có lẽ có một cái gì đó đang diễn ra như Windows (hoặc chính IDE) hợp nhất hai thư mục "thực" riêng biệt vào một thư mục ảo? Tương tự như cách Windows có thể hợp nhất "C: \ Users \ Public \ Documents" và "C: \ Users \ Bob \ Documents" vào một thư mục giống như quan điểm của người dùng? Và việc hợp nhất chính xác như thế nào tùy thuộc vào việc tôi có chạy IDE với tư cách quản trị viên hay không?

Có ai biết những gì đang xảy ra ở đây? Có một số thư mục mà tôi có thể truy cập qua Windows Explorer (hoặc dấu nhắc shell hoặc bất cứ thứ gì) sẽ cho phép tôi thực sự nhìn thấy hai tệp thực tế, thay vì chỉ là C: \ Program Files \ Microsoft Visual Studio \ VC98 \ ATL \ Bao gồm? Cảm ơn trước.


Có vẻ như cửa hàng ảo đã hoạt động trở lại (như Wes Sayeed đã trả lời)! Tôi hiểu tại sao Microsoft tạo ra tính năng đó, nhưng nó chắc chắn có thể gây ra một số vấn đề thực sự khó hiểu.
lzam

Câu trả lời:


4

Vấn đề của bạn là bạn đang sử dụng Visual C ++ 6.0. Phiên bản đó của MSVC là cổ xưa. Bạn có thể gặp sự cố với tính năng Cửa hàng ảo có trong Windows Vista trở đi.

Đây là những gì đang xảy ra:

Chương trình có thể đang cố lưu dữ liệu trong thư mục riêng của mình trong Tệp chương trình thay vì thư mục hồ sơ người dùng của bạn. Trong Windows 7, ghi vào thư mục Tệp chương trình được chuyển hướng âm thầm và trong suốt đến thư mục Cửa hàng ảo trong thư mục hồ sơ người dùng của bạn. Khi bạn chọn Chạy với tư cách Quản trị viên, hãy ghi vào Tệp Chương trình thành công và việc chuyển hướng đó không xảy ra.

Kiểm tra lượt theo dõi:

Xem trong C: \ Users \\ AppData \ Local \ VirtualStore. Bạn có thấy một thư mục WINDOWS và chương trình tập tin bên dưới không? Nếu vậy, có tập tin liên quan đến VC6.0 không? Nếu vậy, thì đây là những gì đang xảy ra với bạn.

Giải pháp duy nhất của bạn là luôn luôn chạy với tư cách quản trị viên hoặc không bao giờ chạy với tư cách quản trị viên để hành vi luôn nhất quán. Bạn cũng có thể tắt tính năng VirtualStore từ trình chỉnh sửa Chính sách nhóm cục bộ (nó không còn bị vô hiệu hóa khi bạn tắt UAC theo cách mà nó đã làm trong Windows Vista).

Ngoài ra, bạn có thể nâng cấp lên phiên bản mới hơn của Visual C ++ (mà tôi rất khuyến khích vì như tôi đã nói, 6.0 là cổ xưa).


điều này làm tôi phát điên ngày hôm qua, tính năng tuyệt vời từ M $
Lluís
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.