假设我有以下项目结构:

- AppRunner
        | - Apprunner.csproj
        | - wwwroot


- Tests
        | - Tests.csproj
        | - bin
                | - debug
                        | - netcoreapp2.1
                                        | - I want copy wwwroot here

我想告诉编译器将内部所有项目和文件夹的wwwroot复制到output folder of tests
但我希望它不仅可以在Windows上正常工作,而且在Linux上也可以正常工作

我在Tests.csproj中添加了以下内容:
<ItemGroup>
    <None Update="..\AppRunner\wwwroot\*">
        <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </None>
</ItemGroup>

但这不是真的

最佳答案

Tests.csproj中,您可以设置指向wwwroot文件夹的链接:

<ItemGroup>
  <Content Include="..\AppRunner\wwwroot\**" Link="wwwroot\%(RecursiveDir)%(Filename)%(Extension)" CopyToOutputDirectory="Always" />
</ItemGroup>

在Visual Studio中,这看起来像wwwroot项目中的常规Tests文件夹,但实际上只是指向AppRunner中的文件夹的链接。当您指定CopyToOutputDirectory时,此文件夹及其内容将在构建Tests项目时复制到bin文件夹中

10-08 12:48