Tôi đang cố viết kịch bản Trình cài đặt Windows trong WiX 3.6 với cài đặt chỉ cho mỗi máy và kiến trúc x64. Tôi có cấu trúc dự án sau (được rút ngắn):Lỗi "ICE38: Thành phần cài đặt vào hồ sơ người dùng" cho một thành phần cụ thể
<Directory Id="ProgramFiles64Folder" Name="PFiles">
<Directory Id="APPLICATIONFOLDER" Name="My Company">
<Directory Id="ProductFolder" Name="My Product">
<Component Id="MainComponent" Guid="" Win64="yes" KeyPath="yes">
...
</Component>
<Directory Id="DataFolder" Name="Data">
<Directory Id="Machine" Name="Machine" >
<Directory Id="MachinesFolder" Name="Machines">
<Component Id="Machine1" Guid="{74341536-72DF-48C3-95E8-2851D9FA8318}" Win64="yes" KeyPath="yes">
...
</Component>
</Directory>
<Directory Id="TemplateFolder" Name="Template">
<Component Id="TemplateFiles" Guid="{A0D0C225-D604-4B84-971D-41687A30EC36}" Win64="yes" KeyPath="yes">
<File Id="Template1.rsbak" Source="$(var.SolutionDir)bin\Release\File1.rsbak" />
...
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
</Directory>
Vấn đề là tôi nhận được lỗi ICE38: Component TemplateFiles installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file
cho thành phần TemplateFiles khi tôi biên dịch. Điều làm tôi bối rối là tôi sử dụng một cấu trúc tương tự trong một dự án khác (làm việc), và có một số thành phần với cùng một thiết lập tương tự trong dự án của tôi (không được hiển thị ở trên). Tại sao điều này - và thành phần duy nhất này nhấn mạnh vào việc cài đặt vào hồ sơ người dùng khi tất cả những người khác được cài đặt đúng, vào Program Files?
Cảm ơn bạn. Mặc dù vấn đề của tôi đã được giải quyết (!?) khi chúng tôi buộc phải cấu trúc lại các thư mục của chúng tôi, tôi tin rằng câu trả lời của bạn là đúng cách để làm điều đó. –
Niềm vui. Tôi đã có cùng một vấn đề này bản thân mình. Vì vậy, thêm một giải pháp cho những kẻ tiếp theo sẽ có nó. –