Как мы можем сделать наш процесс сборки (Dev Studio 2005) для проекта .NET полностью независимым от того, что установлено в GAC на конкретной машине, на которой он работает.
Вот проблема, которую мы пытаемся решить: в зависимости от того, какие сборки были установлены в GAC, наш процесс сборки генерирует различные сборки .NET в выходном каталоге, который мы затем используем для сборки .MSI
Предположительно, это потому, что dev studio предполагает, что, поскольку она установлена в GAC, ее не следует устанавливать как часть нашего продукта.
Мы хотим отключить это поведение, чтобы все сборки .NET, на которые прямо или косвенно ссылается наш проект, копировались в выходной каталог проекта (за исключением стандартных сборок среды выполнения .NET 2.0).
Для прямых ссылок на сборки, я знаю, что настройка "Copy Local = True" делает эту работу.
Однако это не работает для косвенных ссылок на сборки.
т.е. Один из наших проектов ссылается на сборку с именем «A.dll», которая зависит от другой сборки с именем «B.dll», которая находится в том же каталоге, что и «A.dll». На машинах, на которых «B.dll» не установлен в GAC, и A.dll, и B.dll копируются в выходной каталог в процессе сборки Dev Studio. Это то, что мы хотим.
Но на машинах, на которых B.dll установлен в GAC, даже если «Copy Local = True» для A.dll, B.dll не копируется в выходной каталог.