Я пробовал это, и msbuild всегда хочет скопировать файлы, используя их путь к каталогу, но есть обходной путь ...
Отредактируйте файл csproj и после этой строки:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Добавьте эти строки:
<PropertyGroup>
<PrepareForRunDependsOn>$(PrepareForRunDependsOn);MyCopyFilesToOutputDirectory</PrepareForRunDependsOn>
</PropertyGroup>
<Target Name="MyCopyFilesToOutputDirectory">
<Copy SourceFiles="@(None)" DestinationFolder="$(OutDir)" />
</Target>
Копирование выходных файлов происходит в целевом объекте PrepareForRun.Это добавит вашу собственную цель в список целей, которые выполняются как часть PrepareForRun.
В этом примере копируются все элементы в группе элементов None.Вы можете создать свою собственную группу элементов (например, MyFiles) и сделать копию для этой группы элементов, если у вас есть другие файлы «Нет», которые вы не хотите копировать.Когда я попробовал это, мне пришлось изменить имя группы элементов, отредактировав файл csproj напрямую.Visual Studio не позволяла мне устанавливать группу элементов файла из пользовательского интерфейса, но после того, как я отредактировал csproj и изменил его, Visual Studio правильно отобразил имя моей пользовательской группы элементов.