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

时间:2018-12-09 16:39:20

标签: c# visual-studio nuget nuget-server nuget-cli

我们已经设置了一个内部nuget服务器。进行设置时,我们有几个带有.targets文件的软件包,该软件包将一些dll复制到输出文件夹中。

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

似乎无法弄清楚别人为什么不执行死刑。

有什么建议吗?

编辑:

仅在调试配置期间出现问题。

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 个答案:

答案 0 :(得分:1)

使用相同名称的目标会相互覆盖。因此,如果您有多个

<Target Name="AfterBuild">

将只运行一个-最后导入的一个。实际上,AfterBuild是在公共目标中定义的空目标,将被覆盖。

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

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