gpt4 book ai didi

c# - 删除 MSBuild DLL 引用,无论 VS 2015 中的版本如何(通过通配符)

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:38 26 4
gpt4 key购买 nike

在 C# 项目中,我有一个 DLL 引用,我想在构建之前删除它(用另一个替换 - 这是对 Easily override NuGet DLL in development (VS 2015) 的尝试解决方案)。以下目标似乎有效:

  <Target Name="BeforeBuild">
<ItemGroup Condition="Exists('..\..\..\Build\My.dll')">
<Reference Remove="My, Version=1.2.3.4, Culture=neutral, processorArchitecture=MSIL" />
<Reference Include="My, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Build\My.dll</HintPath>
</Reference>
</ItemGroup>
</Target>

问题是我需要指定要删除的 DLL 的确切版本,它可以更改。无论版本如何,我都想删除它。我尝试了通配符

      <Reference Remove="My, Version=*, Culture=neutral, processorArchitecture=MSIL" />

...但这似乎与任何内容都不匹配,因为我收到了错误 CS1704:已导入具有相同简单名称“My”的程序集。

最佳答案

想通了:

<ItemGroup>
<ReferenceToBeRemoved Include="@(Reference)" Condition="$([System.String]::Copy(&quot;%(Reference.Filename)&quot;).StartsWith('MyDllName'))" />
<Reference Remove="@(ReferenceToBeRemoved)" />
</ItemGroup>

关于c# - 删除 MSBuild DLL 引用,无论 VS 2015 中的版本如何(通过通配符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com