首页 文章

从多个目标文件执行的单个nuget.target文件

提问于
浏览
0

我们已经设置了一个内部nuget服务器 . 在设置时我们有几个包含.targets文件的软件包,它将一些dll复制到输出文件夹 .

当我们使用这些包时,只有最后一个nuget.target文件(最后添加的包)似乎正在执行并将文件复制到输出文件夹 .

似乎无法弄清楚为什么其他人不会执行 .

有什么建议吗?

编辑:

问题仅在 Debug Configuration 期间出现 .

csproj文件中的代码...

<Import Project="..\..\..\packages\Package2.1.0.3504\build\Package2.targets" Condition="Exists('..\..\..\packages\Package2.1.0.3504\build\Package2.targets')" />

Nusepc文件:

<file src="buildTargets\Pack1.targets" target="build\Pack1.targets" />
<file src="dlls\external\x64\Pack1Proj\Pack1.dll" target="runtimes\x64\lib\net451\Pack1.dll" />

目标文件:

<Target Name="AfterBuild" >
    <Exec Command="xcopy /Y &quot;$(MSBuildThisFileDirectory)..\runtimes\x86\lib\net451&quot; &quot;$(TargetDir)&quot;" />  
</Target>

1 回答

  • 1

    使用相同名称的目标会相互覆盖 . 所以,如果你有多个

    <Target Name="AfterBuild">
    

    只运行一个 - 最后导入的那个 . 实际上, AfterBuild 是在共同目标中定义的空目标,意图被覆盖 .

    要使目标兼容,请使用不同的方法挂钩此构建步骤:

    <Target Name="Package1AfterBuild" AfterTargets="AfterBuild">
    

相关问题