Не удалось загрузить «путь» файла или сборки или одну из его зависимостей. Система не может найти указанный файл - PullRequest
0 голосов
/ 20 марта 2020

У меня есть сервис. Я пытался установить его, используя c#. Несмотря на наличие служебного файла, я получил сообщение об ошибке Could not load file or assembly 'file:///C:\Sample\sample.exe' or one of its dependencies. The system cannot find the file specified. Я использовал installutil для установки, и он завершился успешно.

           string Path = @"C:\sample\sample.exe";
           string[] commandLineOptions = new string[1] { "/LogFile=install.log" };
           using (AssemblyInstaller installer = new AssemblyInstaller(Path, commandLineOptions))
            {
                installer.UseNewContext = true;
                installer.Install(null);
                installer.Commit(null);
            }

этот код выдает ошибку по тому же пути с последующей установкой. Я проверил путь, файл sample.exe присутствовал в указанном месте. почему возникает эта ошибка?

Редактировать

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

1 Ответ

0 голосов
/ 25 марта 2020

после использования AssemblyInstaller нам нужно выгрузить файлы.

var domain = AppDomain.CreateDomain("MyDomain");
                using (AssemblyInstaller installer = domain.CreateInstance(typeof(AssemblyInstaller).Assembly.FullName, typeof(AssemblyInstaller).FullName, false, BindingFlags.Public | BindingFlags.CreateInstance | BindingFlags.Instance | BindingFlags.ExactBinding, null, new Object[] { Path, new String[] { } }, null, null, null).Unwrap() as AssemblyInstaller)
                {
                    installer.UseNewContext = true;
                    installer.Install(null);
                    installer.Commit(null);
                }
                AppDomain.Unload(domain);

с помощью AppDomain мы можем выгрузить сборку. По этому .exe файл будет выпущен после операции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...