代码之家  ›  专栏  ›  技术社区  ›  timbo

更改自定义MSBuild任务中的引用没有预期效果

  •  0
  • timbo  · 技术社区  · 5 年前

    我编写了一个自定义任务,该任务实现了用于MSBuild的任务。其目的是改变各种参考HintPath。我意识到有更简单的方法可以使用条件来实现这一点,但是像更新NuGet包这样的自动化工具不能很好地使用它们。

    我这样称呼我的任务:

    <Target Name="ChangeReferences">
        <Message Importance="High" Text="&lt;&lt;&lt; %Reference.HintPath)" />
    
        <ChangeReferences References='@(Reference)'>
            <Output ItemName="Reference" TaskParameter="Result" />
        </ChangeReferences>
    
        <Message Importance="High" Text="&gt;&gt;&gt; %Reference.HintPath)" />
    </Target>
    

    4>  <<< ..\packages\MyProject.1.0.0\lib\net462\MyProject.dll
    .
    .
    .
    4>  >>> C:\Projects\MyProject\MyProject\bin\Debug\MyProject.dll
    

    但是,这对导入的DLL没有影响。好吧,我想,有一些显而易见的可能解释:

    1. 在执行任务之前已导入DLL
    2. 此字段仅供参考,但未使用

    这让我彻底崩溃了。我很高兴能包含更多的数据,如果还有什么可以帮助的话,但我认为这可能已经很混乱了。

    0 回复  |  直到 5 年前
        1
  •  1
  •   timbo    5 年前

    答案在作业中。它没有像我期望的那样写过引用。它似乎保存着一个副本。