У меня есть общий проект, который называется общий. Внутри находится класс ExtensionMethods, который используется устаревшими приложениями. Я хочу разбить класс на несколько файлов, но сохранить имя одинаковым. Поэтому вместо public static class ExtensionMethods {}
у меня много public static partial class ExtensionMethods {}
.
Когда я отбрасываю новую dll, созданную из частичных классов, я получаю исключение Method not found:
одним из устаревших приложений, использующих dll. Чем это вызвано? Информация о имени файла как-то встроена в dll? Делают ли частичные классы старые и новые dll несовместимыми? В чем дело? DLL не является версионной, и мы не используем GAC. Это просто dll, помещенная в тот же каталог, что и exe.
Обновление:
Спасибо всем за предложения. Вот что я проверил до сих пор
то же пространство имен: check.
те же подписи: проверьте.
все еще публично: проверьте.
Я могу собрать устаревшее приложение, и оно собирается без ошибок.
Да, исключение говорит мне, что это за метод. Метод не найден:
'System.Collections.Generic.IEnumerable\`1<!!0> CompanyName.Common.ExtentionMethods.Distinct(System.Collections.Generic.IEnumerable\`1<!!0>, System.Func\`3<!!0,!!0,Boolean>)'.
(К сожалению, неправильное написание слова «Extension» - это то, что есть в коде.)
Я начну использовать некоторые инструменты, предложенные вами всеми, чтобы посмотреть дальше.
Ответ: Ошибка пользователя. DLL, которую я думал, что скопировал, не была новой библиотекой, которую я думал, что строил. Я не могу понять, нужна ли была перестройка, проблема с контролем исходного кода или просто моя ошибка. В любом случае, оба приведенных ниже ответа были правильными, частичные занятия не были проблемой, и оба ответа были полезны, но, в конце концов, я думаю, что это было отражающее решение, которое привело меня к поиску проблемы. Спасибо всем.