Msbuild NET核心&;SPA-客户端位于服务器文件夹之外时未发布客户端文件

Msbuild NET核心&;SPA-客户端位于服务器文件夹之外时未发布客户端文件,msbuild,csproj,msbuild-task,Msbuild,Csproj,Msbuild Task,我有一个项目,它有单独的客户端和服务器文件夹,我的目标是在服务器的发布过程中包含客户端文件。文件夹结构如下所示 |- server | |- src | |- MyProject | |- MyProject.csproj |- client |- src |- dist 使用默认SPA模板定义SpaRoot,在我的例子中是。/../../../client/src/,以及以下项目组定义 <ItemGroup> <DistF

我有一个项目,它有单独的客户端和服务器文件夹,我的目标是在服务器的发布过程中包含客户端文件。文件夹结构如下所示

|- server
|  |- src
|     |- MyProject
|        |- MyProject.csproj
|- client
   |- src
      |- dist

使用默认SPA模板定义
SpaRoot
,在我的例子中是
。/../../../client/src/
,以及以下项目组定义

<ItemGroup>
    <DistFiles Include="$(SpaRoot)dist\**; $(SpaRoot)dist-server\**" />
    <DistFiles Include="$(SpaRoot)node_modules\**" Condition="'$(BuildServerSideRenderer)' == 'true'" />
    <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
        <RelativePath>%(DistFiles.Identity)</RelativePath>
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
        <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
    </ResolvedFileToPublish>
</ItemGroup>
<ItemGroup>
    <ClientDistFiles Include="$(SpaRoot)dist/**/*.*"/>
</ItemGroup>

<Target Name="PublishRunWebpack" BeforeTargets="ComputeFilesToPublish">
    <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
    <Exec WorkingDirectory="$(SpaRoot)" Command="yarn install" />
    <Exec WorkingDirectory="$(SpaRoot)" Command="yarn build:$(TargetEnvironment)" />

    <Copy
        SourceFiles="@(ClientDistFiles)"
        DestinationFiles="@(ClientDistFiles->'wwwroot\%(RecursiveDir)%(Filename)%(Extension)')"
    />
</Target>