Отсутствует ссылка на конкретную машину с использованием Fody Costura с Topshelf и Ninject - PullRequest
1 голос
/ 08 апреля 2019

Я создал небольшую службу Windows, которая работает на компьютере клиента, подключается к локальной базе данных и передает эти данные в веб-службу. Я использую Topshelf с Ninject, и код по сути является стандартным, прямо из шаблона. Я добавил Fody Costura для упрощения развертывания и успешно развернул ее на нескольких клиентских компьютерах. Однако на одном клиентском компьютере, с которым я работаю, при попытке запустить приложение или установить службу появляется следующая ошибка:

Topshelf.HostFactory Error: 0 : An exception occurred creating the host, System.MissingMethodException: Method not found: 'Topshelf.HostConfigurators.HostConfigurator Topshelf.Ninject.HostConfiguratorExtensions.UseNinject(Topshelf.HostConfigurators.HostConfigurator, Ninject.Modules.INinjectModule[])'.
   at OpiniionDentrixIntegration.Program.<>c.<Main>b__0_0(HostConfigurator x)
   at Topshelf.HostFactory.New(Action`1 configureCallback)
Topshelf.HostFactory Error: 0 : The service terminated abnormally, System.MissingMethodException: Method not found: 'Topshelf.HostConfigurators.HostConfigurator Topshelf.Ninject.HostConfiguratorExtensions.UseNinject(Topshelf.HostConfigurators.HostConfigurator, Ninject.Modules.INinjectModule[])'.
   at OpiniionDentrixIntegration.Program.<>c.<Main>b__0_0(HostConfigurator x)
   at Topshelf.HostFactory.New(Action`1 configureCallback)
   at Topshelf.HostFactory.Run(Action`1 configureCallback)

По какой-то причине этот конкретный компьютер (Windows 7, .NET 4.6.2) не может найти предположительно встроенный файл Topshelf.Ninject.dll, который содержит отсутствующий метод. Я попытался добавить dll в несколько мест, удалил и прочитал ссылку, и сократил приложение до минимума, и все же у этой машины проблемы. Что может случиться, если на этой случайной машине пропущена одна случайная ссылка?

...