首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用WiX Sharp创建WiX微星

用WiX Sharp创建WiX微星
EN

Stack Overflow用户
提问于 2015-05-06 17:10:01
回答 1查看 752关注 0票数 0

my WiX Sharp程序用于创建msi:

代码语言:javascript
复制
static public void BuildMsi(string FolderPath)
{
    string InstallationDirectoryPath = @"D:\Program";
    var project = new Project("MyProduct",
                      new Dir(InstallationDirectoryPath,
                          new Files(System.IO.Path.Combine(FolderPath,"**"))));

    Compiler.BuildMsi(project);
}

在这段代码中,如果我传递了我想要释放的文件夹路径,那么它将创建一个工作正常的msi。

我的问题是,我希望传递多个文件夹路径,因此我的主函数如下所示,但我不能确定在代码中间必须更改哪些内容

static public void BuildMsi(list<string> folderPath)

EN

回答 1

Stack Overflow用户

发布于 2015-08-10 02:40:39

您可以尝试这样做,但代码并不完美。它将获取包含文件的主目录和包含文件的所有子目录。

代码语言:javascript
复制
static string sRootDir = @"<Path of main directory>";


static public void BuildMsi(string FolderPath)
{
    WixEntity[] weDir = new WixEntity[0];
        weDir = BuildDirInfo(sRootDir, weDir);
        var project = new Project("MyProduct", weDir);

    Compiler.BuildMsi(project);
}


static WixEntity[] BuildDirInfo(string sRootDir, WixEntity[] weDir)
        {
            DirectoryInfo RootDirInfo = new DirectoryInfo(sRootDir);
            if (RootDirInfo.Exists)
            {
                DirectoryInfo[] DirInfo = RootDirInfo.GetDirectories();
                List<string> lMainDirs = new List<string>();
                foreach (DirectoryInfo DirInfoSub in DirInfo)
                    lMainDirs.Add(DirInfoSub.FullName);
                int cnt = lMainDirs.Count;
                weDir = new WixEntity[cnt + 1];
                if (cnt == 0)
                    weDir[0] = new DirFiles(RootDirInfo.FullName + @"\*.*");
                else
                {
                    weDir[cnt] = new DirFiles(RootDirInfo.FullName + @"\*.*");
                    for (int i = 0; i < cnt; i++)
                    {
                        DirectoryInfo RootSubDirInfo = new DirectoryInfo(lMainDirs[i]);
                        if (!RootSubDirInfo.Exists)
                            continue;
                        WixEntity[] weSubDir = new WixEntity[0];
                        weSubDir = BuildDirInfo(RootSubDirInfo.FullName, weSubDir);
                        weDir[i] = new Dir(RootSubDirInfo.Name, weSubDir);
                    }
                }
            }
            return weDir;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30072328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档