Я пытаюсь создать однозадачное самообслуживаемое приложение с веб-API. Я начал использовать OWIN и katana, но не смог их объединить в конце. Итак, я сделал очень крошечный образец проекта без OWIN и katana, только для Web API.WebAPI и ILMerge (aka self-hosted single exe)
В моей папке вывода я получаю эти файлы:
- Newtonsoft.Json.dll
- System.Net.Http.Formatting.dll
- System.Web.Http.dll
- системы .Web.Http.SelfHost.dll
и конечно консоль приложение само по себе, и в этом случае:
- WebAPI_self_hosted.exe
Если я копирую все 5 файлов в другой machinge, все работает отлично.
Когда я пытаюсь ILMerge их, я получаю следующее сообщение об ошибке:
ILMerge.Merge: ERROR!!: Duplicate type 'System.Net.Http.HttpRequestMessageExtensions' found in
assembly 'System.Web.Http.SelfHost'. Do you want to use the /alllowDup option?
at ILMerging.ILMerge.MergeInAssembly(AssemblyNode a, Boolean makeNonPublic, Boolean targetAssemblyIsComVisible)
at ILMerging.ILMerge.Merge()
at ILMerging.ILMerge.Main(String[] args)
Пожалуйста, извините меня, если этот вопрос не действительно до StackOverflow стандартов, но я пробовал много за последние два дня (даже ilrepack) и прямо сейчас, я благодарен за любой намек :-)
Смотрите также этот пост с проектами прикрепленного: Error 2 The type <T> exists in both... with ILMerge
Есть повторяющиеся типы, так что вам нужно настроить ILMerge правильно обращаться с ними, например, с помощью опции/allowDup. В сообщении об ошибке говорится все. –
Хей Ли! :-) Спасибо за ответ (хотя это комментарий, поэтому я не могу отметить его при ответе). Это действительно было/allowDup. В командной строке были и другие параметры, но он отлично работает с/allowDup как единственным параметром. Теперь мне просто нужно выяснить, как использовать его с задачей ILMerge :-) –
Я скопировал его на ответ. Вы можете принять его, чтобы помочь другим найти нужную информацию. –