我製作了一個WixSharp 64位安裝程序,它應該在「Program Files」下的兩個不同目錄下安裝文件。下面是代碼的精簡版:如何使用WixSharp在ProgramFiles64Forder下安裝多個子目錄?
using System;
using WixSharp;
using File = WixSharp.File;
public class Script {
public static void Main(string[] args) {
var project =
new Project("My Product",
new Dir(@"%ProgramFiles%",
new Dir(@"SubDir1", new File(@"Files\test2.txt")),
new Dir(@"SubDir2", new File(@"Files\test2.txt"))
));
project.Platform = Platform.x64;
project.GUID = new Guid("6f330b47-2577-43ad-9095-1861ba25889b");
Compiler.BuildMsi(project);
}
}
的問題是,子目錄下創建 「C:\%ProgramFiles64%\」 而不是在「c是:\ PROGRAM文件\」。
如果我只安裝一個子目錄,那麼該目錄將被正確安裝到「c:\ Program Files」中。
如果我在沒有將平臺指定爲x64的情況下執行相同的操作,文件將正確地位於「c:\ Program Files(x86)」下。
我在這裏做錯了什麼?我怎麼能得到那裏的兩個目錄。
我第一次懷疑我可能會擊中迪爾構造的錯誤超載,但使用下面的代碼時,保證它進入迪爾的行爲是相同的(串TARGETPATH,則params WixEntity []項目)構造函數:
new Dir(@"%ProgramFiles%",new WixEntity[] {
new Dir(@"SubDir1", new File(@"Files\test2.txt")),
new Dir(@"SubDir2", new File(@"Files\test2.txt"))
}
瞭解了一些新的東西:) –