ตัวติดตั้ง WiX จะทิ้งโฟลเดอร์ว่างไว้สำหรับการดำเนินการแบบกำหนดเอง

ฉันได้สร้างโปรเจ็กต์ตัวติดตั้ง WiX และโปรเจ็กต์ CustomAction ฉันเพิ่ม MyCustomAction ลงในสคริปต์การติดตั้งสำเร็จแล้ว และทำงานได้ตามปกติ

อย่างไรก็ตาม โปรแกรมติดตั้งจะทิ้งโฟลเดอร์ว่างไว้ใน [INSTALLFOLDER] ทุกครั้งที่ดำเนินการติดตั้ง มีชื่อว่า MyCustomAction.CA.dll-, MyCustomAction.CA.dll-0, MyCustomAction.CA.dll-1 เป็นต้น แม้แต่โปรแกรมถอนการติดตั้งก็ไม่สามารถลบมันออกได้ ดังนั้นจำนวนโฟลเดอร์ว่างจึงเพิ่มมากขึ้น

มีวิธีป้องกันการสร้างโฟลเดอร์หรือไม่? ฉันได้ลองใช้ค่า Execute ที่แตกต่างกัน (กระทำ, เลื่อนออกไป) แต่ดูเหมือนว่าจะไม่สร้างความแตกต่างเลย

MyCustomAction มีการกำหนดดังนี้:

<CustomAction Id="MyCustomAction"
              Return="check"
              Execute="commit"
              FileKey="MyCustomAction.CA.dll"
              DllEntry="MyCustomAction" />

<InstallExecuteSequence>
  <Custom Action="MyCustomAction" Before="InstallFinalize">NOT Installed</Custom>
</InstallExecuteSequence>

person kor_    schedule 30.04.2015    source แหล่งที่มา
comment
โปรดแชร์โครงสร้างไดเร็กทอรีและระบุที่ตั้งโปรเจ็กต์และตำแหน่งการติดตั้งของคุณ   -  person LeoN    schedule 30.04.2015


คำตอบ (2)


ฉันพบวิธีแก้ปัญหา: ฉันได้รวม MyCustomAction.CA.dll ไว้ในไฟล์การติดตั้งผลิตภัณฑ์ของฉันแล้ว และไม่ได้อยู่ใน Fragment ของมันเอง นั่นทำให้คัดลอก dll ไปยังโฟลเดอร์การติดตั้ง

ขณะนี้เมื่อ CustomActions ถูกกำหนดไว้ใน Fragment ของตนเอง โฟลเดอร์ชั่วคราวจะไม่ถูกสร้างขึ้นใน INSTALLFOLDER

person kor_    schedule 30.04.2015

คุณเพิ่มรายการไบนารีสำหรับพวกเขาหรือไม่?

<Binary Id='FooBinary' SourceFile='foo.dll'/>

http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html

person tollgen    schedule 30.04.2015