Team Build 2010 - Сборка сторонней сборки Ссылки не копируются в выходную папку - PullRequest
2 голосов
/ 13 мая 2011

Когда я собираю решение на своем сервере сборки, он создает папку для двоичных файлов, а затем копирует эти двоичные файлы в конечную выходную папку. В моем случае некоторые сторонние сборки ССЫЛКИ правильно копируются, в то время как другие сторонние сборки ССЫЛКИ не копируются. Не думайте, что мои проекты решений не имеют прямой ссылки на копируемые сборки.

Это означает, что все хорошо. Но когда я запускаю свою программу, она не запускается, поскольку сборки, на которые она ссылается, не могут, в свою очередь, загрузить свои ссылки.

Какой процесс в сборке определяет, какие сборки копируются в папку binaries? Есть ли способ указать, что он должен копировать все сборки?

Редактировать: Одним из возможных решений является ссылка на все необходимые сборки в одном из проектов в решении, но это очень запутанно.

Ответы [ 3 ]

5 голосов
/ 13 мая 2011

Для проектов ASP.NET есть встроенный механизм для этого.Убедитесь, что необходимые сборки находятся в папке вашего проекта с именем _bin_deployableAssemblies, и они будут автоматически скопированы.Чтобы увидеть, как эта настройка связана со сборкой веб-проектов, найдите файл ...

%PROGRAMFILES%\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets

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

<PropertyGroup>
  <PrepareForRunDependsOn>
    $(PrepareForRunDependsOn);
    CopySilverlightApplications;
    _CopyBinDeployableAssemblies;
  </PrepareForRunDependsOn>
  ...

Вы можете выполнить аналогичную настройку для любого проекта, поскольку целевой объект PrepareForRun является частью общих целей MSBuild в Visual Studio.

2 голосов
/ 13 мая 2011

Пожалуйста, сделайте одно, добавьте сторонние dll в вашу папку bin и дайте ссылку на эту dll в папке bin.

Затем создайте решение и зафиксируйте результаты.Это скопирует сторонние dll-файлы в папку bin.

0 голосов
/ 31 мая 2011

В некоторых случаях вам требуются сборки, которые вы не используете в качестве ссылок для копирования, в этом случае смотрите: Сборка пакета Visual Studio и библиотеки DLL в пути к приватному бену

Еслиэто не так, убедитесь, что все ссылки, которые вы хотите скопировать, имеют свойство Copy Local: True.

...