Наше решение имеет папку «Lib», содержащую DLL («A.dll»), хранящуюся в исходном элементе управления.Как визуальная студия знает, что моя библиотека DLL должна быть скопирована
Мой проект выглядит следующим образом (упрощенный):
Website
- References
- * Reference to A.dll from Lib folder below *
- Content
- Lib
- A.dll (Build Action: Content, Copy to Output: Do not copy)
- B.dll (Build Action: Content, Copy to Output: Do not copy)
- Migrations
- Views
А имеет ссылку на/использует B, но B не входит в качестве ссылки в веб-сайте.
Когда я попал в компиляцию Visual studio помещает B в папку bin, как он это знал? Даже если я оставлю B там, где он есть, но не позволяйте проекту веб-сайта видеть его (не включать его в проект), он все равно помещается в папку bin.
Однако, если я помещаю B в папку Migrations, он не копируется в папку bin. В папке Lib и Migrations нет специальных свойств против них (что я вижу).
Как это работает, документировано?
Метаданные сборки .NET содержат запись для зависимых сборок. Msbuild читает его, чтобы выяснить, нужно ли их копировать. Таким образом, он видит, что B является зависимостью A. Если он находит файл, он копирует его. Если нет, то * тихо * пропускает копию. –
Как узнать, как искать в папке Lib? Просто оказалось, что место А было помещено, а не место А было изначально скомпилировано. – Lee
Из ссылки, которую вы добавили. Свойство '' свойства ссылки A указывает на папку Lib. –