我有一个依赖于我的自定义项目的NetCore应用程序。因为我不能直接引用它,所以我编写了后置构建事件来将我的文件复制到输出目录:
xcopy "$(SolutionDir)Ethereum.Contracts\bin\$(ConfigurationName)\*.abi" "$(TargetDir)" /Y /I
xcopy "$(SolutionDir)Ethereum.Contracts\bin\$(ConfigurationName)\*.bin" "$(TargetDir)" /Y /I
在构建和运行项目时一切都正常,但是当运行 publish
命令时它不包括这些文件。
该怎么做呢?我尝试了这种方法,但 AddPayloadsFolder
没有被调用。
我的 csproj
文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Dependencies\Dependencies.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="log4net.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="xcopy "$(SolutionDir)Ethereum.Contracts\bin\$(ConfigurationName)\*.abi" "$(TargetDir)" /Y /I


xcopy "$(SolutionDir)Ethereum.Contracts\bin\$(ConfigurationName)\*.bin" "$(TargetDir)" /Y /I" />
</Target>
<Target Name="AddPayloadsFolder" AfterTargets="AfterPublish">
<Exec Command="xcopy "$(TargetDir)\*.abi" "$(PublishDir)" /Y /I


xcopy "$(TargetDir)\*.bin" "$(PublishDir)" /Y /I" />
</Target>
</Project>
bin\Debug\netcoreapp2.0
文件夹中(与 Visual Studio 发布选项一样)。然而,\bin\Debug\netcoreapp2.0\publish
仍未包含这些文件。这就是AddPayloadsFolder
任务的目的。您可以尝试自己添加任何不属于项目的文本文件。例如,尝试将csproj
文件本身复制到输出目录中。您可以轻松地将其复制到bin/debug
文件夹中,但它不会进入publish
文件夹。 - Alex Zhukovskiy