简体   繁体   English

dotnet发布不包括在构建后事件期间生成的文件

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

Here is part of my A.csproj : 这是我的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 Payloads目录是在项目B创建的,而项目B是从项目A引用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 运行dotnet publish时, Payloads目录在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. 当我运行dotnet publish时,如果Payloads存在,则它已正确部署。 This is just simplified example of my projects. 这只是我的项目的简化示例。 How can I fix this? 我怎样才能解决这个问题?

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. 带有PublishUrl的版本适用于Visual Studio。 It uses it for compatibility. 它用于兼容性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM