ILMerge: объединение сборок в один exe, App.Config

Я использую ILMerge для объединения .ddls в один исполняемый файл, однако, когда я запускаю Output.exe, он, похоже, не находит файл App.Config. Он возвращает ошибку: InvalidOperationException: в файле конфигурации приложения не найдено имя строки подключения.

Интересно, включил ли ILMerge файл App.Config в Output.exe вообще?

Как я могу не включить его и убедиться, что Output.exe ссылается на него?

Я использовал графический интерфейс ILMerge - это не дает мне возможности включать что-либо, кроме .dll, которые я выбираю из папки bin / Release, в которую компилируется ConsoleApplication.

Вот изображение из папки bin / Debug. ILMerge не дает мне возможности включать ConsoleLayer.vshost.exe.config, который включает (в основном) файл App.Config. Как я могу заставить его включить его, чтобы Output.exe знал детали строки подключения при запуске?

введите описание изображения здесь

Спасибо.


person t_plusplus    schedule 19.02.2015    source источник


Ответы (2)


Файл конфигурации по умолчанию - app_name.exe.config. Вам нужно взять нужный файл конфигурации и переименовать его в соответствии с файлом exe. В вашем случае Output.exe.config.

person eladcon    schedule 19.02.2015
comment
вы хотите скопировать файл ConsoleLayer.vshost.exe.config (тот, который отмечен красной линией рядом с ним - выше) в каталог, где находится Output.exe.config, и переименовать его? Или вы имеете в виду взять это из самого проекта в визуальной студии? А как насчет App.Config для сборки, которая содержит DataLayer (EntityFramework), мне тоже нужно скопировать его и под каким именем? - person t_plusplus; 19.02.2015
comment
предполагая, что ваше приложение может работать, выполнив ConsoleLayer.exe, вы можете скопировать ConsoleLayer.exe.config (это файл конфигурации, который использует ваше приложение) и переименовать его в Output.exe.config. - person eladcon; 19.02.2015
comment
Спасибо, это изменило указанную выше ошибку на новую - и это прогресс. Теперь он жалуется, что не может загрузить файл или сборку Entity Framework. Может быть, это как-то связано с Packages.config? Я попытался скопировать его и переименовать в packages.exe.config, но это не помогло. Интересно, есть идеи? - person t_plusplus; 19.02.2015

Это может быть немного поздно для этого, если вы нашли решение, но любой файл с vshost в его имени обычно связан с режимом отладки в вашем приложении. Это ваше приложение, работающее в режиме отладки. Поэтому, когда вы нажимаете на application.exe для запуска приложения, оно не ищет никаких файлов с vshost в имени файла. вместо этого он ищет application.exe.config. Вы можете отключить это для отладки.

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

Вот несколько ссылок, которые могут быть полезны ...

поиск в Google по отключению vshost

Вопрос и ответ на Stackoverflow ...

Ответ на для чего-это-цель-vshost-exe-файла знаменитого Джона Скита

person Matt Pedigo    schedule 12.04.2016