2012-03-30 10 views
9

Trình cài đặt tôi đã tạo bằng WiX cài đặt DLL sử dụng biến số SystemFolder cũng như ứng dụng C# vào thư mục khác. Tôi muốn trực tiếp tham khảo DLL từ ứng dụng. Tôi có cần tra cứu các khóa đăng ký để tìm vị trí của SystemFolder không?"SystemFolder" trong WIX và C#

Trả lời

13

Không, bạn không cần truy vấn sổ đăng ký. Windows Installer có một loạt các thuộc tính tích hợp sẵn tự động giải quyết đến các vị trí nổi tiếng đặc biệt như SystemFolder.

Xem System Folder Properties để biết thêm thông tin chung. Đối với WiX, chỉ cần tạo một yếu tố Directory như một đứa trẻ trực tiếp của các yếu tố TargetDir Directory:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="SystemFolder" Name="SystemFolder" /> 
</Directory> 

Nếu bạn đã biết điều này và muốn biết làm thế nào để tham khảo các DLL từ C#, SystemFolder là trong con đường tìm kiếm vì vậy tôi 'không chắc chắn lý do tại sao bạn phải. Nếu đó là tôi, tôi sẽ biên dịch C# là x86 (AnyCPU hiện có phần hơi thịnh hành) và sử dụng:

string myDllPath = Path.Combine(System.Environment.SystemDirectory, "my.dll");