You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将.csproj文件的宏导入Directory.build.targets文件中使用?

结论

完全可以直接使用你提到的这些csproj内置宏,不需要额外做导入操作。


原理说明

  • Directory.Build.targets是MSBuild原生支持的全局配置文件,会被解决方案下的所有项目自动导入,所有csproj中可用的内置宏(比如$(TargetDir)、$(TargetName)、$(Configuration)、$(TargetFramework)等)都可以直接在这个文件内使用,取值和对应项目csproj中的取值完全一致。
  • 你示例的替换写法是完全正确的,相比硬编码灵活性高很多,后续就算修改项目输出路径、目标框架版本、编译配置(Debug/Release),都不需要手动调整路径。

优化后的完整Directory.Build.targets示例

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <BinaryFormats Include="$(TargetDir)$(TargetName).dll"/>
        <BinaryFormats Include="$(TargetDir)$(TargetName).pdb"/>
    </ItemGroup>

    <Target Name="CopyUnityPlugins" AfterTargets="Build">
        <Copy SourceFiles="@(BinaryFormats)" DestinationFolder="$(SolutionDir)Assets\Plugins" />
    </Target>
</Project>

额外优化建议

如果你只想让这个复制逻辑作用于BinaryFormats这一个类库项目,而不是解决方案下的所有项目,可以给Target添加判断条件,避免其他项目编译时执行不必要的复制操作:

<Target Name="CopyUnityPlugins" AfterTargets="Build" Condition="'$(TargetName)' == 'BinaryFormats'">
    <Copy SourceFiles="@(BinaryFormats)" DestinationFolder="$(SolutionDir)Assets\Plugins" />
</Target>

内容的提问来源于stack exchange,提问作者aybe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:54:03