Использование MSBuild для создания нескольких решений и копирования приложений в отдельные папки
Так же, как Стийн сказал: " То, что OutputPath должен быть установлен в проекте, который получает сборку, только там он может оценивать $ (AssemblyName) в контексте проекта. ", поэтому мы не могли использовать это прямо из файла проекта.
В качестве обходного пути вы можете использовать ItemGroup
с Subfolder
для каждого проекта:
<ItemGroup>
<Projects Include="project1.csproj" />
<Subfolder>project1</Subfolder>
<Projects Include="project2.csproj" />
<Subfolder>project2</Subfolder>
<Projects Include="project3.csproj" >
<Subfolder>project3</Subfolder>
</Projects>
</ItemGroup>
Затем используйте %(Projects.Subfolder)
для каждого OutputPath:
<Target Name="_BuildSingleConfiguration">
<MSBuild Projects="@(Projects)"
BuildInParallel="true"
Properties="Configuration=$(Configuration);OutputPath=%(Projects.BuildOutputPath)\%(Projects.Subfolder)" />
</Target>
Сертифицировано: Как назначить разный OutputPath для проекта для конфигурации сборки с MSBuild?
Надеюсь, это поможет.