2013-10-10 2 views
0

Короче говоря, у меня есть консольное приложение, которое должно быть обратно совместимым с XP. Он скомпилирован в .net 4.0C# use .net 4.5 скомпилированная dll, в приложении .net 4.0

Мне нужна функциональность 4,5 для управления почтой и не может быть третьим лицом. Я добавил функциональность в .net 4.5 скомпилированного DLL

является даже возможно иметь эти два «говорить» и «играть хорошо»

+1

Даже если бы они могли, то 4,5 сборка не может работать на XP. –

+0

Это не возможно, конечно, это очевидно? –

+0

Возможно, но это чертовски много работы, во-первых, вам нужно удалить все библиотеки по умолчанию из вашего кода, а затем напрямую подключиться к DLL и пометить как локальную копию, тогда вы должны убедиться, что ни одна из библиотек не требует Windows 7+ системная библиотека, которой нет в XP – MikeT

ответ

3

.dll s различных структур, безусловно, может взаимодействовать не слишком много проблем .. Однако в вашем случае вам не повезло ...

.dll, то есть .NET 4.5, потребуется установить .NET 4.5 framework на ваш компьютер XP. Который, конечно, вы не можете сделать.

Так ответ: No.

+0

Я понял, что это будет что-то вроде этого. Спасибо - почему microsoft, почему .... после того, как разработчики так долго охотятся на .net-функции, интегрированные в .net, в тот же выпуск они разбивают всю обратную совместимость ... – asuppa

+0

@asuppa, [Основная поддержка Windows XP завершилась 14 апреля, 2009] (http://windows.microsoft.com/en-CA/windows/products/lifecycle). Поэтому возникает вопрос, почему вы все еще используете XP. – Habib

+0

@asuppa: Чтобы быть справедливым ... XP старше, чем некоторые из программистов на SO. – Andrew

1

Нет, вы не можете этого сделать. Это будет следующая ошибка времени компиляции.

«< Имя класса>» не может быть разрешен, поскольку он был создан против рамки «.NETFramework, Version = v4.5». Это более высокая версия, чем текущая целевая среда «.NETFramework, Version = v4.0».

+0

То, что я собирался, спасибо Спасибо – asuppa

0

Возможно, что в двух условиях: 1 вы предоставляете полный инсталлятор для продукта и 2 требуемую библиотеку не используя системы DLL не доступны на целевой машине

99,9999% от времени это просто не стоит

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

, что может означать перекомпиляции большого числа .nets библиотек DLL сломать рамки ссылки

лично я предложил бы использовать 3rd партия почтовый libray как sharpZiplib

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