У меня есть 3 проекта:Ошибка 2 Тип <T> существует в обоих ... с ILMerge
- A_MainProject (проект запуска)
- B_IntermediateProject
- C_SharedClassLibrary
В depencies являются:
А зависит от B & C
B зависит от C
и C зависит только от системы.
Каждый проект имеет собственное пространство имен.
Пока не установлено ILMerge, все работает отлично.
Если ILMerge активируется для проекта A («A_MainProject») все еще работает отлично и один автономный исполняемый файл для проекта А генерируется.
Если ILMerge теперь также активируется для B_IntermediateProject, я получаю следующее сообщение об ошибке:
Error 2 The type 'C_SharedClassLibrary.SharedClass' exists in both 'c:\dev\ILMergeError\B_IntermediateProject\bin\Debug\B_IntermediateProject.exe' and 'c:\dev\ILMergeError\C_SharedClassLibrary\bin\Debug\C_SharedClassLibrary.dll' C:\dev\ILMergeError\A_MainProject\Program.cs 12 A_MainProject
я использую "MSBuild ILMerge задач" 1.0.3-RC2 с "ILMerge" 2.13.0307 (от mbarnett) ,
Минимальный раствор содержит 3 проекта с одним классом каждого. Эта версия ILMerge активирована только один проект и работает:
Эта версия также активируется по проекту B и выдает ошибку:
Если я объединить два exes и dll с ILMerge извне (ILMergeGUI) все работает нормально.
Заранее спасибо за ответы, Xan-Kun
звучит как пространство имен выпуск на первый взгляд .. – MethodMan
привет и спасибо за ответ. Это заставило меня задуматься уже 2 дня. Plese позвольте мне объяснить, я исхожу из фона Java, и концепция пакетов там, похоже, немного отличается от пространства имен. Не могли бы вы объяснить немного больше, что вы точно имеете в виду? Все классы должны находиться в одном пространстве имен? –
Нет, они не должны находиться в одном пространстве имен и, возможно, не должны. – doogle