Я пытаюсь построить .csproj
, который ссылается на некоторые проекты в решении. Эти ссылки отмечены знаком CopyLocal=False
. И это желаемое поведение.
Я создаю его для CI с помощью MSBuild, поэтому я установил папку вывода через /p:OutputPath="some output dir"
. Я также установил /p:SolutionDir="path to the solution"
для правильного разрешения некоторых ссылок NuGet.
Проблема в том, что когда я указываю OutputPath с абсолютным путем к выходному каталогу (например, d:\solution\build\buildgroupsubfolder
), тогда MSBuild копирует каждую зависимость в выходной каталог, я не знаю, почему он это делает. И если я указываю выходной путь с относительным путем (например, ..\..\..\..\..\build\buildgroupsubfolder
), тогда MSBuild правильно обрабатывает CopyLocal=false
и не копирует ссылки в выходной каталог.
В нашем решении была некоторая вложенность, проекты разделены на группы, поэтому мы хотим, чтобы они были встроены в подпапки. И я хочу иметь возможность указывать путь сборки относительно базового пути сборки, а не пути самого проекта.
Почему MSBuild игнорирует CopyLocal = false, если указан абсолютный путь, и обрабатывает его правильно, если указан относительный путь?