Как я могу встроить сборку в консольное приложение без ILMerge? - PullRequest
1 голос
/ 10 марта 2010

Здесь много сообщений об этом, я использую этот код из другого сообщения SO и размещаю назначение делегата в моем методе Main (). Ни один из других постов не ответил прямо на мой вопрос.

Моя сторонняя сборка встроена в качестве ресурса, но когда я запускаю приложение:

  • Я получаю исключение TypeInitializationException с внутренним элементом FileNotFoundException. Он пытается найти сборку в файловой системе и терпит неудачу.
  • он никогда не доберется до метода Main, где назначен обработчик события для AssemblyResolve

У меня есть две ссылки на сборку, которые встроены в мой Resources.resx, один - сторонний инструмент (анализатор командной строки), а другой - файл библиотеки, в котором находится основная часть приложения.

Может быть, это невозможно с консольным приложением? Кажется маловероятным, но я не вижу способа обойти это.

Re: ILMerge и т. Д .: Я бы хотел, чтобы это было сделано полностью в коде без привлечения каких-либо инструментов. Причина: я не хочу иметь исходный код в репозитории, который требует, чтобы другие члены команды установили инструмент, которого у них, вероятно, еще нет. Если это невозможно, то ILMerge выглядит как следующий лучший вариант.

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

Рассмотрите возможность использования ILMerge для объединения сборок в одну, а не встраивания в качестве ресурса. Это сайт загрузки для ILMerge .

Вы бы слили сторонние сборки в консольное приложение.

1 голос
/ 11 марта 2010

Если это сборка в смешанном режиме, она должна находиться на диске. Некоторое ограничение или что-то.

1 голос
/ 11 марта 2010

Вы также можете посмотреть на инструменты виртуализации приложений, такие как XenoCode . Они могут упаковать несколько сборок (включая саму платформу .net) в отдельный исполняемый файл.

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