我编写了一个自定义任务,该任务实现了用于MSBuild的任务。其目的是改变各种参考HintPath。我意识到有更简单的方法可以使用条件来实现这一点,但是像更新NuGet包这样的自动化工具不能很好地使用它们。
我这样称呼我的任务:
<Target Name="ChangeReferences">
<Message Importance="High" Text="<<< %Reference.HintPath)" />
<ChangeReferences References='@(Reference)'>
<Output ItemName="Reference" TaskParameter="Result" />
</ChangeReferences>
<Message Importance="High" Text=">>> %Reference.HintPath)" />
</Target>
4> <<< ..\packages\MyProject.1.0.0\lib\net462\MyProject.dll
.
.
.
4> >>> C:\Projects\MyProject\MyProject\bin\Debug\MyProject.dll
但是,这对导入的DLL没有影响。好吧,我想,有一些显而易见的可能解释:
-
在执行任务之前已导入DLL
-
此字段仅供参考,但未使用
这让我彻底崩溃了。我很高兴能包含更多的数据,如果还有什么可以帮助的话,但我认为这可能已经很混乱了。