Asp.net核心2 - 文件未发布

时间:2018-03-23 07:28:37

标签: c# asp.net-core csproj

修改

有关信息,我正在使用VS Code

开发macOS

我正在尝试在发布过程中包含文件(目前cshtml代表我的电子邮件模板)。

我在github上关注这个thread,但似乎他们的解决方案对我不起作用。

这里我的csproj添加了一个唯一的cshtml文件:

  <Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
    <ItemGroup>
      <EmailFile Include="$(ProjectDir)/EmailTemplates/OrderCompleteEmail.cshtml" />
    </ItemGroup>
    <Copy SourceFiles="@(EmailFile)" DestinationFolder="$(PublishDir)" SkipUnchangedFiles="false" />
  </Target>

1 个答案:

答案 0 :(得分:6)

您的解决方案几乎是正确的,您必须使用AfterTargets="Publish"

<Target Name="CopyCustomContentOnPublish" AfterTargets="Publish">
  <ItemGroup>
    <EmailFile Include="EmailTemplates/OrderCompleteEmail.cshtml" />
  </ItemGroup>
  <Copy SourceFiles="@(EmailFile)" DestinationFolder="$(PublishDir)" />
</Target>

您还可以将单个目标中的所有电子邮件模板复制到同一文件夹,例如:

  <Target Name="CopyCustomContentOnPublish" AfterTargets="Publish">
    <ItemGroup>
      <EmailTemplates Include="EmailTemplates\*.cshtml" />
    </ItemGroup>
    <Copy SourceFiles="@(EmailTemplates)" DestinationFolder="$(PublishDir)%(EmailTemplates.RelativeDir)" />
  </Target>