【问题标题】:Double reference appears after re-opening project重新打开项目后出现双重引用
【发布时间】:2018-09-12 16:12:43
【问题描述】:

我创建了一个项目并将其设为 nuget 包,当我在项目中安装该 nuget 包时,它运行良好,一切看起来都很好。

当我关闭项目并重新打开它(使用 Visual Studio)时会出现此问题。在参考列表中,由于某种原因,nuget 包是双重的,并且一个没有路径/没有版本等。项目运行,一切都在使用正确的引用,但是在添加的这个双重引用的输出窗口中有一个警告。

我无法弄清楚它为什么会发生。在 .csproj 中只有一个对此 nuget 的引用,并且在 packages 文件夹中也是如此。

有人经历过吗?

【问题讨论】:

    标签: c# visual-studio visual-studio-2015 nuget nuget-package


    【解决方案1】:

    重新打开项目后出现双重引用

    添加 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 文件中是否只有一个引用对此 nuget。

    如果是,请在重新打开项目后尝试清理构建,有时 Visual Studio 会从 bin\ 文件夹中引用。

    如果上面没有帮助,请删除带有黄色标记的引用,然后关闭项目并重新打开它,检查是否重现此问题。

    另外,您可以安装其他的nuget包来检查是否有同样的问题,这样我们就可以知道这个问题与您的Visual Studio或nuget包本身有关。

    【讨论】:

    • 所以事实证明,在我的 nuget 包中,.targets 文件和 .props 文件的名称中需要有与 nuget 版本匹配的版本号才能解决此问题...跨度>
    • @JohnChris,所以你找到了这个问题的原因吗?您可以将其分享为答案,这对阅读此主题的其他社区成员可能会有所帮助。谢谢。
    【解决方案2】:

    在创建 nuget 包时,某些场景需要 .props 和 .targets 文件。例如使用多个架构,我已经回答了here。 - 我已经更新了这个答案,以反映我在尝试解决双重参考问题时发现的结果

    有一点没有明确说明 .target 和 .props 的命名需要与 nuget 包文件名相同(也意味着版本)。 如果没有这个,双重引用会在重新打开 Visual Studio 时出现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多