我有一个文件移动事件,我想在发布后触发
<Target Name="CopyEmailTemplates" AfterTargets="AfterPublish">
<ItemGroup>
<TemplatesFolder Include="Views\EmailTemplates\*.cshtml" />
</ItemGroup>
<Copy SourceFiles="@(TemplatesFolder)" DestinationFolder="$(OutDir)Views\EmailTemplates\" />
</Target>
我已确认该命令未返回包含此目标的发布目录:
<Target Name="OutputTest" AfterTargets="AfterPublish">
<Exec Command="echo OutPath: $(OutputPath)" />
<Exec Command="echo OutDir: $(OutDir)" />
</Target>
预期: OutDir设置为dist /
实际行为 OutDir设置为bin / Release / netcoreapp2.0 /
我正在使用: osx.10.12-x64上的.NET命令行工具(2.1.4)
答案 0 :(得分:2)
发布分为两个步骤。该项目使用常规构建设置构建,然后发布到$(PublishDir)
。在需要知道发布输出路径的任何地方使用此属性。
答案 1 :(得分:1)
自我回答希望能够防止人们未来的头痛。
dotnet publish -o ./dist
命令将在msbuild中设置$(PublishDir)
变量。
dotnet build -o ./dist
确实设置了$(OutDir)
为了更明确地使用我们的构建,我现在使用msbuild命令
dotnet publish -o ./dist -c Release
<强>变为:强>
dotnet msbuild /t:publish /p:PublishDir=dist/ /p:Configuration=Release