Ссылка 3.5 в сборе из 4.0 winforms phail - PullRequest
2 голосов
/ 15 мая 2010

Итак, у меня есть эта служебная библиотека, которая скомпилирована как dll в .net 3.5 и используется моим сайтом asp.net 3.5. Я создал .net 4.0 winforms приложение для отправки данных на сайт. Я хочу использовать функциональность в библиотеке утилит из этого приложения winforms.

Проблема заключается в том, что когда я делаю ссылку на библиотеку утилит и использую в ней код, intellisense лает на меня, говоря, что он не может найти объекты в этой библиотеке. Дело в том, что я бы переключил приложение winforms на 3.5, которое решает проблему, но я использую Задачи, которые требуют 4.0. И поскольку мой веб-сайт и библиотека утилит работают под управлением 3.5, а мой веб-сайт размещен на godaddy, который в настоящее время поддерживает только asp.net 3.5, поэтому компиляция моей библиотеки утилит под 4.0 для моего приложения winforms не будет работать, потому что она ломает мой веб-сайт.

Я попробовал трюк app.config, который использует useLegacyV2RuntimeActivationPolicy = "true" ...

Но это не помогло. Очевидно, я мог бы начать новый проект утилит для 4.0 и скопировать файлы кода из существующей библиотеки утилит, а затем сослаться на новую библиотеку утилит 4.0 в моем приложении winforms, но это выглядит довольно излишним, когда все, что я хочу сделать, - это сослаться на библиотека и использовать его функциональность. Не говоря уже о том, что у меня будет две служебные библиотеки, каждая из которых содержит один и тот же код, и если я обновлю код в одной, мне нужно будет убедиться, что другая также обновлена. Я мог бы использовать добавить файл в качестве ссылки, но вы поняли идею.

Так есть ли что-нибудь еще, что я мог бы попробовать или каким-либо другим способом решить или обойти это? Или мне просто придется сломаться и создать идентичный клон библиотеки утилит для 4.0.

1 Ответ

0 голосов
/ 15 мая 2010

Вы можете перенаправить ссылки dll, используя элемент <assemblyBinding> в файле appconfig, но это скользкий путь.

Что я сделал в аналогичной ситуации, так это то, что я создал 2 разных файла проекта в одном каталоге - один для 4.0 (VS2010) и другой для 3.5 (VS2008). Таким образом, у меня есть только 2 разных файла проекта поверх одного и того же набора исходных файлов

...