Пути для ссылок C# .Net 3.5 - CodeHelper

Пути для ссылок C# .Net 3.5

1

Есть решение с двумя проектами. Консольный проект и библиотека классов(.dll). Путь вывода при построении dll указан в ./Lib консольного проекта. При построении консольного проекта папка Lib с содержимым копируется в выходной каталог. Но среда выполнения не может найти dll которые лежат в той папке. В настройках проекта на вкладке "Пути для ссылок" добавлена и ./Lib и ./bin/Release/Lib. Как сказать среде выполнения в какой папке искать сборки?

Или как сделать чтоб при добавлении ссылки на сборку, при построении, сборка копировалась не в ./bin/Release а в ./bin/Release/Lib.

Буду рад любой наводке =)

Новые ответы

Новые Лучшие

1

Если оба проекта находятся в одном решении, то лучшим способом их связать будет создание прямой ссылки. То есть Консольный Проект → Добавить ссылку → Проект DLL. Об этом прямо написано написано в MSDN:

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

Но при этом, конечно, все зависимости и запускаемый файл будут находиться в одной папке (bin/Debug или bin/Release). Если обязательно нужно переместить часть зависимостей в подпапку, то в App.config консольного проекта можно добавить такой код:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <probing privatePath="Lib" />
  </assemblyBinding>
</runtime>

Это заставит среду выполнения искать зависимости по указанному пути. Переносить dll-ки в эту папку можно уже после компиляции. Например, используя пост-билд-экшн MSBuild.


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.