Автоматическая установка ClickOnce не распознает библиотеку, указанную в пакете NuGet - PullRequest
2 голосов
/ 20 июня 2019

У меня есть C # winforms проект установки под Visual Studio 2015. У меня также есть 3 разных проекта службы Windows под тем же решением.Я использовал Omu.ValueInjecter для автоматического сопоставления аргумента с классом.

Я добавил проект установщика, который в основном использует Click Once со всеми добавляемыми в него зависимостями.

Я также использовалШаблон MVP для установки UI в этом проекте.И отдельный класс для работы с установкой тишины.См. Пример кода ниже

Ранее, когда я запускал установщик без вывода сообщений, я получил ошибку, связанную с dll NLog, поэтому я решил эту проблему с помощью nuget packager и включил эту dll в project => properties => Application Files ... Но сейчаспосле исправления библиотеки NLog я получаю Ошибка «Файл не найден» для Omu.ValueInjecter dll (ошибка типа «файл не найден»).

Я выполнил те же действия, что и для NLog, но не повезло.

Ниже приведен код в файле program.cs

[STAThread]
public static void Main(string[] args)
{
    if(args == null || args.Length <=0){
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Installer(args) { IsSilentInstall = false });
    }
    else
        new SilentInstaller(args) { IsSilentInstall = true; };
}

Код файла SilentInstaller.cs, как показано ниже

public class SilentInstaller
{
    public SilentInstaller(string[] args)
    {            
        var run = OnOpen;
        if (run != null) run(args);
        //run?.Invoke(args);

        var install = OnInstall;
        install?.Invoke();

        var close = OnClose;
        close?.Invoke();
    }

    public event Action<string[]> OnOpen;
    public event Action OnInstall;
    public event Action OnClose;
}

Ошибка "Файл не найден" выдается в строке при выполнении (run! = Null)(арг);в приведенном выше примере.run имеет тип события Action OnOpen;

Тот же фрагмент кода работает хорошо, если я запускаю установщик на основе пользовательского интерфейса, но получаю ошибку при запуске установщика без вывода сообщений.

...