Использование одних и тех же классов App_Code на разных сайтах - PullRequest
1 голос
/ 18 сентября 2008

Допустим, у вас есть решение с двумя проектами веб-сайта: веб-сайтом A и веб-сайтом B. Теперь в папке App_Code веб-сайта A есть класс X, определенный в файле ClassX.cs. Что вы делаете, если веб-сайту B также требуется доступ к ClassX.cs?

Есть ли способ поделиться этим файлом между папками App_Code? Предположим, что о перемещении файла в общую библиотеку не может быть и речи.

Ответы [ 4 ]

1 голос
/ 18 сентября 2008

С ограничением «Предположим, что о перемещении файла в общую библиотеку не может быть и речи». единственный способ сделать это - использовать точки соединения NTFS для создания символической ссылки, которая будет иметь одинаковый файл .cs в обеих папках.

Хотя это ужасный вариант (по причинам управления версиями) ... лучше всего переместить его в общую библиотеку.

Вот запись в Википедии о точках соединения NTFS http://en.wikipedia.org/wiki/NTFS_junction_point

и вот инструмент для их создания http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

1 голос
/ 18 сентября 2008

Упакуйте ваши общие классы в библиотеку (DLL), и на каждом сайте щелкните правой кнопкой мыши на ссылке add и выберите созданную вами библиотеку.

1 голос
/ 18 сентября 2008

Пожалуйста, не используйте эти гнусные проекты на сайте. Вместо этого используйте проекты веб-приложений, упакуйте свои общие классы в проект библиотеки и создайте ссылку на него из всех своих веб-приложений.

0 голосов
/ 18 сентября 2008

Я не верю, что есть способ без перемещения ClassX в новый проект библиотеки кода. .NET требует, чтобы все зависимости сборки находились в той же папке, что и сама сборка, или в GAC, для автоматического обнаружения.

Вы можете попробовать загрузить сборку вручную через классы Reflection, хотя это немного странно.

Лучшее решение, если у вас есть время и желание его использовать, - это использовать решение JRoppert о переносе его в проект веб-приложения. Затем вы можете использовать веб-ссылки (которые работают так же хорошо, как обычные ссылки внутри VS) для ссылки на ClassX.

НТН

...