Nuget 更新包中断参考条件

Nuget Update Package breaks Reference conditional

我的解决方案中的一些私有 Nuget 包在 Debug 中被它们的本地 dll 引用,在 Release 中被引用为 nuget 包。

这是我的 Web.csproj:

<Choose>
<When Condition="'$(Configuration)' == 'Release'">
  <Reference Include="CustomPackage, Version=1.0.0.0, Culture=neutral">
    <HintPath>..\packages\CustomPackage.1.0.0\lib\net461\CustomPackage.dll</HintPath>
    <Private>True</Private>
  </Reference>
</When>
<Otherwise>
  <Reference Include="CustomPackage, Version=1.0.0.0, Culture=neutral">
    <HintPath >..\..\CustomPackage\bin$(Configuration)\CustomPackage.dll</HintPath>
    <Private>True</Private>
  </Reference>
</Otherwise>
</Choose>

CustomPackage 发布并更新到 1.0.1 后,我在 Nuget 包管理器中为我的解决方案更新了该包。

问题: 然后 Nuget 将完全删除第一个引用,并在更新期间将更新后的引用放在条件之外。

我发现 Nuget Reference Switcher which I thought would be my solution by that wants you to add all projects you reference locally into the Solution which doesn't not work with my team and we need to reference just the dll. A GitHub Issue 与其他有同样问题的人一起归档。

除了这个条件还有其他方法吗?

我可以在构建期间使用 Web.Debug.csproj 对我的 Web.csproj 应用转换吗?

谢谢,亚历克斯

当我们为我们的项目升级 NuGet 包时,它将执行卸载和重新安装过程,这将修改我们的 .csproj 文件以将引用添加到我们的项目中。

并且我们无法在构建期间更改我们的 .csproj 文件,因为构建过程需要根据 .csproj 中的设置构建您的项目。

以上所有过程都是Visual Studio中nuget和项目的默认操作。