Имам проект ASP.NET под контрол на източника (Subversion). Поради различни причини не искам да добавя директорията \Bin или нейното съдържание към контрола на източника, така че я оставям svn:ignored. DLL файловете се зареждат тук по време на компилация на Visual Studio и мога да започна с чиста директория и/или да изтрия цялото съдържание на тази директория и пак да имам успешна компилация.
Има два начина, по които препращам към код за включване в проекта:
- В елемента Web.config //configuration/configSections/system.web/compilation/assemblies. Мога да
<add>
всеки DLL, който е в GAC по този начин. Правя това за всички системни dll. - Във VS Solution има настройка в Project/ProjectSection/ProjectReferences, която позволява ми да посоча включени препратки към други проекти в решението.
(Имайте предвид, че това е различно от неуеб проекти, където всички препратки към външни зависимости се съхраняват във файла на проекта. Няма файл на проекта за VS уеб проекти, така че те трябва да се съхраняват някъде другаде.)
Сега имам DLL, компилиран от трета страна, който бих искал да включа в проекта. За съжаление нито една от опциите за препратка, които открих, изглежда не работи за мен:
- Препращането чрез web.config/system.web/compilation/assemblies не работи, освен ако DLL не съществува в GAC; не можете да използвате път към файл. Наистина бих искал да избегна зависимост от GAC, тъй като това ще означава допълнителна стъпка, за да накарате проекта да работи на всяка целева машина.
- Не намерих начин да включа препратка към файл в решението, както мога да направя с препратки към проекти.
- Всеки път, когато добавя препратка към файл с помощта на диалоговия прозорец „Добавяне на препратка“ на VS, той просто копира DLL в директорията \Bin. Това няма да работи за мен, тъй като моята директория \Bin не е постоянна в различните системи.
Има ли друг начин да направя препратка към DLL файл и да го запазя?