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