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>
4

1 回答 1

2

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

<Target Name="AfterBuild">

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

To make your targets compatible, use different methods to hook into this build step:

<Target Name="Package1AfterBuild" AfterTargets="AfterBuild">
于 2018-12-09T23:19:02.650 回答