dotnet publish doesn't include files generated during post build event

对着背影说爱祢 提交于 2020-01-02 19:11:06

问题


Here is part of my A.csproj:

 <ItemGroup>
    <Content Include="..\..\Payloads\**\*.*">
      <Link>Payloads\%(RecursiveDir)%(FileName)%(Extension)</Link>
      <CopyToOutputDirectory>None</CopyToOutputDirectory>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
  </ItemGroup>

Payloads directory is created in a project B which is referenced from project A

B.csproj

 <PropertyGroup>
    <PostBuildEvent>
      xcopy /I /S /R /Y /d $(TargetDir)*.* $(SolutionDir)Payloads\Content
    </PostBuildEvent>
  </PropertyGroup>

Payloads directory doesn't exist in publish directory when I run dotnet publish

Info

dotnet SDK version 2.0, ASP.NET Core 2.0 on .NET 461 framework

It seems like publish content is calculated before the build. When I run dotnet publish if Payloads exists it is deployed correctly. This is just simplified example of my projects. How can I fix this?


回答1:


I replaced

 <ItemGroup>
    <Content Include="..\..\Payloads\**\*.*">
      <Link>Payloads\%(RecursiveDir)%(FileName)%(Extension)</Link>
      <CopyToOutputDirectory>None</CopyToOutputDirectory>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
  </ItemGroup>

With

 <Target Name="AddPayloadsFolder" AfterTargets="AfterPublish">
        <PropertyGroup>
          <PayloadsDirectory>$(SolutionDir)Payloads</PayloadsDirectory>
        </PropertyGroup>
        <Exec Command="xcopy.exe /I /S /R /Y /d $(PayloadsDirectory) $(PublishDir)Payloads" Condition="!Exists('$(PublishDir)Payloads')" />
        <Exec Command="xcopy.exe /I /S /R /Y /d $(PayloadsDirectory) $(PublishUrl)Payloads" Condition="!Exists('$(PublishUrl)Payloads')" />
      </Target>

The version with PublishUrl is for Visual Studio. It uses it for compatibility.



来源:https://stackoverflow.com/questions/45998779/dotnet-publish-doesnt-include-files-generated-during-post-build-event

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!