亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Wix 遞歸 DirFiles 構建 MSI#

使用 Wix 遞歸 DirFiles 構建 MSI#

C#
九州編程 2023-09-09 17:28:22
我正在探索 Wix# 的功能,與 Wix 相比,我對它的簡單性感到驚訝。我們已經在使用 QT Installer Framework,但我們的客戶還需要 MSI 安裝包。我已經有一個包含我們產品的所有文件的目錄,并且只有一個包。我嘗試將所有文件包含C:\Temp\MyProductFiles到我的 MSI 安裝程序中。using System;using WixSharp;class Script{    static public void Main(string[] args)    {        Compiler.WixLocation= @"C:\WiX-3.7\binaries";         var project = new Project("MyProduct",                          new Dir(@"C:\Temp\MyProduct",                             new DirFiles(@"C:\Temp\MyProductFiles\*.*")                           )                      );        project.UI = WUI.WixUI_Common;        Compiler.BuildMsi(project);    }}安裝程序基本上按預期工作,但不幸的C:\Temp\MyProductFiles是包含許多子目錄,我不想每次都明確說明,因為我們有多種產品。有沒有一種簡單的方法可以使用 Wix# 自動包含所有文件和子目錄?也許使用 C# 也可以做到這一點,但我不精通 C#,我真的不知道如何開始。
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

要包含所有文件和子目錄,請new Files("@"C:\Temp\MyProductFiles\*.*")使用new DirFiles(@"C:\Temp\MyProductFiles\*.*".


var project =

? ? new Project("MyProduct",

? ? ? ? new Dir(@"%ProgramFiles%\My Company\My Product",

? ? ? ? ? ? new Files(@"..\Release Folder\Release\*.*")

查看完整回答
反對 回復 2023-09-09
?
達令說

TA貢獻1821條經驗 獲得超6個贊

據我所知,沒有內置的機制來獲取所有子目錄,但您可以遞歸地遍歷樹,并將每個條目投影到DirFiles


IEnumerable<string> GetSubdirectories(string root)

{

    string[] subdirectories = Directory.GetDirectories(root);

    foreach (var subdirectory in subdirectories)

    {

        yield return subdirectory;

        foreach (var nestedDirectory in GetSubdirectories(subdirectory))

        {

            yield return nestedDirectory;

        }

    }

}

DirFiles投影可以輸出到帶有強制通配符模式的數組中:


DirFiles[] dirFiles = GetSubdirectories(rootPath).Select(d => new DirFiles(Path.Combine(d, "*.*"))).ToArray();

然后,只需通過它即可:


var project = new Project("MyProduct", new Dir(@"C:\Temp\MyProduct", dirFiles)));


查看完整回答
反對 回復 2023-09-09
  • 2 回答
  • 0 關注
  • 148 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號