我写了一个自定义任务,该任务实现了与MSBuild一起使用的Task。这个想法是,它改变了各种参考提示路径。我意识到有一些使用条件的简单方法,但是更新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没有影响。好的,我想,有一些明显的可能解释:
因此,我将HintPath设置为一个无意义的值,以为任何一种解释都是正确的,那将是无效的。但是,瞧,没有找到参考!因此,它似乎只有在不好的情况下才会起作用。
这完全把我扔了。如果有其他需要帮助的地方,我很乐意提供更多数据,但我认为这可能已经很混乱了。
答案 0 :(得分:1)
答案在作业中。它不会像我期望的那样覆盖Reference。它似乎保持重复。