首先,我是 WixSharp 的新手。几个小时以来,我一直在尝试为我的安装项目指定一个自定义文件 License.rtf,如下所示:
project.LicenceFile = "License.rtf";
但我不断收到此错误:
C# Script execution engine. Version 3.9.4.1.
Copyright (C) 2004-2014 Oleg Shilo.
Error: Specified file could not be executed.
System.Xml.XmlException: The prefix '' cannot be redefined from 'http://schemas. microsoft.com/wix/2006/wi' to '' within the same start element tag.
at System.Xml.XmlWellFormedWriter.PushNamespaceExplicit(String prefix, String ns)
at System.Xml.XmlWellFormedWriter.WriteEndAttribute()
at System.Xml.Linq.ElementWriter.WriteStartElement(XElement e)
at System.Xml.Linq.ElementWriter.WriteElement(XElement e)
at System.Xml.Linq.XElement.WriteTo(XmlWriter writer)
at System.Xml.Linq.XContainer.WriteContentTo(XmlWriter writer)
at System.Xml.Linq.XDocument.WriteTo(XmlWriter writer)
at System.Xml.Linq.XDocument.Save(TextWriter textWriter, SaveOptions options)
at WixSharp.Compiler.BuildWxs(Project project, String path, OutputType type)
at WixSharp.Compiler.BuildWxs(Project project, OutputType type)
at WixSharp.Compiler.Build(Project project, String path, OutputType type)
at WixSharp.Compiler.Build(Project project, OutputType type)
at Script.Main(String[] args)
请有人告诉我我做错了什么。这是我的 setup.cs 代码:
//css_dir ..\..\;
//css_ref Wix_bin\SDK\Microsoft.Deployment.WindowsInstaller.dll;
//css_ref System.Core.dll;
using System;
using System.Xml;
using System.Xml.Linq;
using System.Linq;
using System.Windows.Forms;
using Microsoft.Deployment.WindowsInstaller;
using Microsoft.Win32;
using WixSharp;
using WixSharp.CommonTasks;
class Script
{
static public void Main(string[] args)
{
var project =
new Project("myproduct",
new Dir(@"%ProgramFiles%\My Company\myproduct", new DirFiles(@"Files\*.*"),
new Dir("DataModel", new DirFiles(@"Files\Data\*.*"),new Dir("Music", new DirFiles(@"Files\Data\Music\*.*")),new Dir("CardPack", new DirFiles(@"Files\Data\CardPack\*.*")),new Dir("CardSingle", new DirFiles(@"Files\Data\CardSingle\*.*"))),
new ExeFileShortcut("Uninstall MyProduct", "[System64Folder]msiexec.exe", "/x [ProductCode]")),
new Dir(@"%AppDataFolder%\myproduct", new File(@"Files\Config\Configure.json"), new Dir("Folder1", new DirFiles(@"Files\Folder2\*.*"))));
project.LicenceFile = "License.rtf";
project.UI = WUI.WixUI_Minimal;
project.GUID = new Guid();
project.ResolveWildCards();
var exeFile = project.AllFiles.Single(f=>f.Name.EndsWith("myproduct.exe"));
exeFile.Shortcuts = new[] {
new FileShortcut("myproduct.exe", "INSTALLDIR"),
new FileShortcut("myproduct.exe", @"%Desktop%")
};
Compiler.BuildMsi(project);
}
}
提前致谢。