C# WiX 自定义操作崩溃并显示“无法加载文件或程序集”

问题描述 投票:0回答:1

我有一个 C# WiX 项目,像这样(修剪过的代码):
C# WiX 项目主要:

public class WixInstaller
{
    public static void Main()
    {
        // Setup Project
        var project = new Project(AppName,
            // Application Dir
            new Dir(@$"%ProgramFiles%\{AppName}",
                // Application Files
                new Files($@"{binPath}\*.*"),
                // Program Menu Exe
                new File($@"{binPath}\{AppName}.exe",
                    new FileShortcut(AppName, @$"%ProgramMenu%\{AppName}") { IconFile = iconPath }))
        );

        // Run After Install
        var runAfterInstallAction = new ElevatedManagedAction(
            CustomActions.RunAfterInstall, Return.check, When.After, Step.InstallFinalize, Condition.NOT_Installed) 
        { 
            Execute = Execute.immediate 
        };
        project.AddAction(runAfterInstallAction);

        Compiler.BuildMsi(project, System.IO.Path.Combine(_solutionDirectory, fileName));
    }
}

自定义动作:

public class CustomActions
{
    [CustomAction]
    public static ActionResult RunAfterInstall(Session session)
    {
        try
        {
            // This pattern in necessary to catch exceptions relating to missing dlls.
            Action(session);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }

        return ActionResult.Success;

        static void Action(Session session)
        {
            using Microsoft.Win32.TaskScheduler.TaskService ts = new();
        }
    }
}

执行自定义操作时,会出现错误

Could not load file or assembly Microsoft.Win32.TaskScheduler version....
。我不知道如何解决这个问题。网上有很多指南,但似乎没有关于 WiX C# 项目的内容,甚至在 WiX 的实际文档中也是如此。好像我需要添加一个由操作引用的dll文件,但C#项目似乎没有类似的功能。

  • 我尝试了project.AddBinary(),但它没有解决问题。
  • 我尝试将自定义操作的
    actionAssembly
    设置为所需的二进制文件,但没有成功(找不到它,似乎没有创建 CA 文件)
  • 为 customActions 制作一个单独的项目。
c# installation wix wixsharp
1个回答
0
投票

以下工作有效,添加到主要内容中:

project.DefaultRefAssemblies.Add(@".\Microsoft.Win32.TaskScheduler.dll");

讨论:https://github.com/oleg-shilo/wixsharp/issues/1447

© www.soinside.com 2019 - 2024. All rights reserved.