2009-08-06 6 views
3

У меня есть приложение C#, которое использует некоторые другие сборки, поэтому, когда я компилирую, я получаю файлы с расширением .exe и 2 или 3 .dll. В идеале, мне нужен только файл .exe. На данный момент я использую ILMerge для этого, но поскольку сборки, которые я использую, являются Open Source (и по той же лицензии), мне интересно, есть ли простой способ добавить их в мое решение и скомпилировать их в .exe?Компиляция одного проекта C# в другой

Что я не хотите:

  • Создание подпапки в моей основной .exe и копирование всех остальных файлов в него
  • Добавление его в виде отдельного решения, а затем добавить его к моей. exe Project с надписью «Добавить как ссылка»

Я полагаю, что ILMerge более или менее точно выполняет то, что я хочу, но если я смогу применить слияние на уровне компилятора, это будет то, что я хочу.

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

+0

На самом деле я не вижу проблемы с тем, что ILMerge является шагом после сборки. Я делаю то же самое, и он просто работает без проблем. –

ответ

1

Поскольку я никогда не пробовал это, я не знаю, будет ли это работать и/или оправдать ваши ожидания, но есть возможность компилировать .net-код в netmodule вместо сборки, а затем в эти модули, теоретически, можно было бы добавить в другие сборки, вы можете прочитать об этом here и here.

2

Вы можете добавить зависимости в виде встроенных ресурсов, а затем load them вручную, но для этого потребуется изменение кода, чтобы оно не было идеальным.

Я думаю, что ILMerge - ваш лучший вариант здесь.

Смежные вопросы