2009-02-03 1 views
1

У меня есть отладочная версия и выпускная версия сборщика dll.Visual Studio: как ссылаться на сборки в Visual Studio?

Они сидят каталоги на моем компьютере. Для других разработчиков они сидят в каталогах на своем компьютере.

Для отладочной версии приложения я хочу использовать сборку отладки. Для версии версии приложения я хочу использовать сборку релизов.

В этом вопрос.


Для тех, кто не обращает внимания, здесь имеется немало проблем. Как ссылаться на сборку на моем компьютере, которая после проверки проекта в исходное управление становится допустимым путем на компьютере пользователя elses.

Как установить узел «Ссылки» на тип решения (Отладка, Отпуск).

я попытался скопировать узел отладки

\bin\Debug 

и сборки выпуска в

\bin\Release 

и добавил к источнику управления Ассамблеи библиотеки DLL в

\ Bin \ Debug \ bin \ Release

папки. Тогда я надеюсь, что сборка будет найдена в папке исполняемого файла.

Проблема с тем, что на других машинах разработчика произошла ошибка, из-за которой нельзя перезаписать DLL сборки - когда CopyLocal является ложным.

+0

Зачем вам нужно отлаживать и выпускать сборки, так как вы ссылаетесь на них? –

+0

Прямо сейчас я не ссылаюсь на них отдельно. Сейчас я ссылаюсь на отладочную версию DLL сборки, работает ли мой проект в режимах Debug или Release. –

ответ

0

Укажите проект и ссылку на проект? не знаю, работает ли это в вашей ситуации ...

+0

Это не проект, это сборка. –

8

Используйте общую структуру для этих DLL (общее имя-каталога) и ссылку на этот родственник.

Пример из .csproj-файла:

<Reference Include="utils_xxx, Version=1.2.10.0, Culture=neutral, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\..\common_utils_dllproject_dir\utils\bin\$(Configuration)\utils_xxx.dll</HintPath> 
</Reference> 

Вы, возможно, придется ввести это вручную, но один раз в репо, это то же самое для всех. Теперь вам просто нужно убедить своих разработчиков приспособиться к этой директории-layout и -naming.

PS: Если вы его не заметили: $ (Конфигурация) - это трюк для использования Release/Debug-DLL.

+0

Я не могу заставить структуру каталогов для каждого разработчика. –

+0

Да, вы можете и да, вы должны. В противном случае вы никогда не сможете создавать что-либо с несколькими разработчиками в миксе. – Bigtoe

+0

Я согласен с @Bigtoe. Один из способов справиться с тем, чтобы структура каталогов была одинаковой для всех разработчиков, заключается в том, чтобы также поместить папку «Common_utils» в репозиторий. – Abraham

1
  • Разработчики обязательно есть папка где-то на своей машине структурированным, как это ...
 
[Parent Folder] 
    Debug 
    [Debug Assembly].dll 
    Release 
    [Release Assembly].dll 
  • Открыть проект и добавить ссылку на сборку Debug с первого шага. Проверьте его.
  • Иметь каждый разработчик откройте проект и добавьте ссылку в свойствах проекта.Путь должен быть абсолютным путем к папке Debug с первого шага.
  • У каждый разработчик закрывает Visual Studio и редактирует файл [project] .user, который теперь находится в той же папке, что и файл проекта. Измените «Отладка» на «$ (Конфигурация)». Сохрани и закрой.
  • Теперь это должно работать. Если вы выберите ссылку в обозревателе решений и посмотрите на свойство Path в Property Grid, это может быть неверно. Это просто проблема VS. Если вы тестируете здание в Release и Debug, он должен работать.

Это работает, потому что ссылочные пути, установленные разработчиками, хранятся в пользовательском файле, который никогда не проверяется в исходном элементе управления. Поэтому пути для каждого разработчика могут быть разными. Это решение в основном украдено из ответа Леонидаса, но использует эталонные пути.

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

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

  • Нет связанных вопросов^_^