【问题标题】:dotnet publish doesn't include files generated during post build eventdotnet publish 不包括在构建后事件期间生成的文件
【发布时间】:2018-02-10 10:23:01
【问题描述】:

这是我A.csproj的一部分:

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

Payloads 目录创建在项目B 中,该项目引用自项目A

B.csproj

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

当我运行dotnet publish 时,publish 目录中不存在Payloads 目录

信息

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

似乎发布内容是在构建之前计算的。当我运行 dotnet publish 时,如果 Payloads 存在,则它已正确部署。这只是我的项目的简化示例。 我该如何解决这个问题?

【问题讨论】:

    标签: c# asp.net .net asp.net-web-api


    【解决方案1】:

    我换了

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

     <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>
    

    带有 PublishUrl 的版本适用于 Visual Studio。它使用它来实现兼容性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2022-01-25
      • 1970-01-01
      • 2018-09-09
      • 2011-04-25
      • 2018-09-27
      • 1970-01-01
      • 2022-12-15
      相关资源
      最近更新 更多