从多个目标文件执行的单个 nuget.target 文件
Single nuget.target file executed from multiple targets file
我们已经设置了一个内部 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 "$(MSBuildThisFileDirectory)..\runtimes\x86\lib\net451" "$(TargetDir)"" />
</Target>
使用相同名称的目标会相互覆盖。所以如果你有多个
<Target Name="AfterBuild">
只有一个 运行 - 最后导入的那个。事实上,AfterBuild
是一个在通用目标中定义的空目标,旨在被覆盖。
为了使您的目标兼容,请使用不同的方法挂接到此构建步骤:
<Target Name="Package1AfterBuild" AfterTargets="AfterBuild">
我们已经设置了一个内部 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 "$(MSBuildThisFileDirectory)..\runtimes\x86\lib\net451" "$(TargetDir)"" />
</Target>
使用相同名称的目标会相互覆盖。所以如果你有多个
<Target Name="AfterBuild">
只有一个 运行 - 最后导入的那个。事实上,AfterBuild
是一个在通用目标中定义的空目标,旨在被覆盖。
为了使您的目标兼容,请使用不同的方法挂接到此构建步骤:
<Target Name="Package1AfterBuild" AfterTargets="AfterBuild">