0

.exe、.dll、または .config のいずれかで終わる特定のパスのすべての出力ファイルをインストールに追加しようとしていますが、これまで試した方法ではうまくいきませんでした。

これは私が試したことです:

private static WixEntity[] getContents(string directory)
    {
        WixEntity[] contents = System.IO.Directory.GetFiles(directory)
                        .Where(f => f.EndsWith(".dll")
                                    || f.EndsWith(".exe")
                                    || f.EndsWith(".config"))
                        .Select(f => new File(f))
                        .ToArray();
        contents = contents.Concat(System.IO.Directory.GetDirectories(directory, string.Empty, System.IO.SearchOption.TopDirectoryOnly)
                        .Select(d => new Dir(d.Split('\\').Last(), getContents(d)))
                        .ToArray()).ToArray();
        return contents;
    }

private static string buildMsi()
        {
            var project =
                new ManagedProject(productName,
                    new Dir($"%ProgramFiles%\\{companyName}",
                        new Dir($"{productName} Files", getContents(clientFolderPath)),
        ***some other irrellevant stuff***);
        }

単に行うだけでなく

private static string buildMsi()
            {
                var project =
                    new ManagedProject(productName,
                        new Dir($"%ProgramFiles%\\{companyName}",
                            new Dir($"{productName} Files", new Files(clientFolderPath, f => f.EndsWith(".dll")
                                || f.EndsWith(".exe")
                                || f.EndsWith(".config")),
            ***some other irrellevant stuff***);
            }

最初の方法を使用すると、フォルダーからすべてのファイルのみを取得し、ネストされたフォルダーとその内容は取得しません。2 番目の方法を使用すると、何も得られません。

どうすればそれらを修正できますか、またはこれを機能させるためのまったく別の方法は何ですか?

ありがとう!

4

1 に答える 1