我创建了一个项目,并将其作为一个nuget包,当我在项目中安装该nuget包时,它工作正常并且看起来都很好。
当我关闭项目并重新打开它时(使用visual studio)会出现问题。在引用列表中,nuget包由于某种原因是双重的,并且一个没有路径/没有版本e.t.c.项目运行并且所有内容都使用了正确的引用,但在此双引用的输出窗口中有一个警告已添加。
我无法弄清楚它为什么会发生。在.csproj中,只有一个对此nuget的引用,也在packages文件夹中。
有没有人经历过这个?
答案 0 :(得分:0)
重新打开项目后出现双重参考
添加nuget引用会在.csproj
文件中添加如下节点:
<Reference Include="xx.xxx.Parameters, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\xx.xxx.Parameters.1.0.0\lib\net461\xx.xxx.Parameters.dll</HintPath>
</Reference>
由于引用中出现双重引用,因此,首先,我们需要仔细检查.csproj
文件中
如果是,请在重新打开项目后尝试清理构建,有时Visual Studio将从bin\
文件夹中引用。
如果上面没有帮助,请删除带黄色标记的参考,然后关闭项目并重新打开,检查是否重现了此问题。
此外,你可以安装其他nuget包来检查是否存在同样的问题,这样我们就可以知道这个问题与你的Visual Studio或nuget包本身有关。
答案 1 :(得分:0)
创建nuget包时,某些场景需要.props和.targets文件。例如,使用多个架构,我已回答here。 - 我更新了这个答案,以反映我在尝试解决双重引用问题时发现的内容
一点不清楚的是.target和.props的命名需要与nuget包文件名相同(也就是版本)。 如果没有这个,重新打开visual studio时会出现双引用。