2009-05-03 41 views
7

Tôi có một ứng dụng được sửa đổi để tính đến UAC trong VISTA. Vì vậy, bây giờ, tệp .mdb (JET hoặc Access) nằm ở ProgramData\MyApp\Tại sao phải ảo hóa trên thư mục ProgramData trong MS Vista?

Tôi nhận ra rằng khi ứng dụng của tôi đọc cơ sở dữ liệu lần đầu tiên nó đang thực hiện từ vị trí đó ... nhưng khi ứng dụng của tôi ghi vào cơ sở dữ liệu ... tệp được ảo hóa và chuyển đến Users\MyUser\AppData\Local\VirtualStore\ProgramData\MyApp. Từ thời điểm này trên ứng dụng của tôi luôn luôn đi đến vị trí ảo hóa trong đĩa.

Ứng dụng của tôi đang hoạt động, nhưng nếu tôi tiếp tục theo cách này, cơ sở dữ liệu sẽ ở trong từng người dùng và chúng tôi thực sự cần chia sẻ cơ sở dữ liệu với tất cả người dùng trong PC.

Tôi nghĩ rằng việc ghi dưới thư mục ProgramData sẽ không kích hoạt cơ chế ảo hóa.

Tôi đang thiếu gì?

Tôi cần đặt quyền cho thư mục MyApp trong ProgramData ??

Tôi làm cách nào để cài đặt?

Cảm ơn mọi người ...

Thông tin thêm: Được phát triển với VS2003 VB.NET sử dụng Thiết lập dự án VS.

+1

"Vista" không phải là từ viết tắt, vì vậy chỉ chữ cái đầu tiên phải được viết hoa. –

Trả lời

2

Rất có thể bạn sẽ cần đặt quyền ghi cho tất cả người dùng trong khi cài đặt.

Để kiểm tra, xóa thư mục ảo hóa, đặt thủ công quyền trên thư mục ProgramData \ MyApp và xem có hoạt động hay không.

Về cách thực hiện điều đó một cách thực dụng trong quá trình cài đặt, điều đó thực sự phụ thuộc vào công nghệ bạn đang sử dụng.

+0

Yeap, đó chỉ là sự cho phép viết. Điều khó khăn khác là làm một MSI từ dự án thiết lập VS 2003 và sử dụng Custom Action (để thiết lập quyền truy cập thư mục) gây ra lỗi trong Vista vì CustomActions chạy như một người dùng phổ biến được insted như người dùng Elevated đang chạy Setup. Bạn phải chỉnh sửa tệp MSI bằng ORCA để đặt cờ "Không mạo danh" thành sự thật. Để làm như vậy, trong bảng Hành động tùy chỉnh, trong cột Loại của hàng "cài đặt", bạn nên đặt 3073 làm giá trị. – Romias

+1

Ah, thiết lập dự án từ phiên bản trước vista của VS. Ugh. Nếu bạn đủ hiểu biết để sử dụng Orca thì có thể bạn đã sẵn sàng để sử dụng WiX, điều này sẽ làm cho cuộc sống của bạn trở nên dễ dàng hơn nhiều :) – saschabeaumont

1

Tôi cũng gặp vấn đề ở đây, có vẻ như vista đã từng quyết định ảo hóa tệp, cách duy nhất để dừng tệp đó là xóa tệp ảo. Lần sau khi bạn sử dụng nó, nó sẽ sử dụng thư mục ProgramData.

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