Visual Studio: как ссылаться на сборки в Visual Studio? - PullRequest
1 голос
/ 03 февраля 2009

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

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

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

Вот в чем вопрос.


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

Как настроить узел "Ссылки" для каждого типа решения (Debug, Release).

Я попытался скопировать отладочную сборку в

\bin\Debug

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

\bin\Release

и добавил сборочные библиотеки dll для управления исходным кодом в

\ Bin \ Debug \ Bin \ Release

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

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

Ответы [ 3 ]

8 голосов
/ 03 февраля 2009

Используйте общую структуру для этих библиотек 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>

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

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

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

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

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

0 голосов
/ 03 февраля 2009

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

...