我正在尝试为使用Sqlite的程序编写Wix#安装。 SqlLite具有适用于x64和x86的库。
我想同时包含两个库文件,并仅在用户计算机上安装相关文件。
我想我需要使用Condition,但是找不到一个很好的例子。
如果我排除了包含x86版本的行(在我的x64机器上),则可以使用。尝试同时包含两个文件会引发异常,因为我在同一位置包含两个文件。
这应该怎么做?
BR,安德斯
var x64SqLite = new Feature("x64SqLite");
var x86SqLite = new Feature("x86SqLite");
var project = new Project(
$"{productWithEnv} {releaseNumber}",
new Dir(
$@"%ProgramFiles%\{companyName}\{productWithEnv}",
new Files(path + @"\*.*",
f => !f.EndsWith(".pdb") && !f.EndsWith(".msi")
),
new Files(x64SqLite, path + @"\x64\SQLite.Interop.dll")
,new Files(x86SqLite, path + @"\x86\SQLite.Interop.dll")
),
new Dir(
$"%ProgramMenu%\\{companyName}\\{productWithEnv}",
new ExeFileShortcut(productWithEnv,
@"[" +
$"%ProgramFiles%\\{companyName}\\{productWithEnv}"
.ToDirID() + "]",
""),
new ExeFileShortcut($"Uninstall {productWithEnv}", "[System64Folder]msiexec.exe",
"/x [ProductCode]"))
)
{
GUID = new Guid(guidString),
OutFileName = $@".\MyProduct{envStringToShow}.{releaseNumber}",
MajorUpgradeStrategy = MajorUpgradeStrategy.Default,
Version = new Version(releaseNumber)
};