VS2017 - 项目加载失败 - 在项目中找到重复的链接项

时间:2017-03-16 09:11:05

标签: asp.net-core visual-studio-2017 csproj

如果包含的Nuget包中包含我项目中存在的文件,则无法加载我的项目。

我的Nuget包中包含appsettings.json文件,由于我的项目也有appsettings.json文件,因此我在Visual Studio 2017中收到以下错误:

(load failed) - Duplicated linked item found in the project: "C:\users\user\.nuget\packages\mypackage\contentFiles\any\netcoreapp1.1\appsettings.json"

如果我从我的项目(而不是Nuget包)中删除appsettings文件,项目加载正常,但该项目需要该文件才能工作。

我似乎无法从nuget包中删除appsettings文件,但这可能是我唯一的选择。 “dotnet pack”似乎包含此文件,即使我的csproj文件未在"CopyToPublishDirectory"

中引用它

所以问题是: 如何排除某些文件被打包(通过dotnet pack)? 或者如何加载存在重复链接项的项目?

3 个答案:

答案 0 :(得分:3)

我的设置与您的设置不同,但在尝试将现有项目添加到解决方案时,我收到了类似的错误消息。我尝试了一些东西,所以不确定到底有什么帮助解决了它,但这就是我所做的:

  • 删除binobj文件夹
  • ,清除项目所在的文件夹
  • 注意到在无法加载项目的csproj文件中有几个PropertyGroupItem个节点未使用或为空或指向不是的文件夹在磁盘上,所以我删除了那些节点。

之后,我删除了项目并将其重新添加到解决方案中并成功加载。

答案 1 :(得分:1)

我设法让它上班。
默认情况下,打包所有内容文件。 要禁用此功能,我按如下方式编辑了csproj文件:

<PropertyGroup>
    <EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>

<ItemGroup>
    <Content Include="appsettings.*"> 
      <Pack>false</Pack>
    </Content>
<ItemGroup>

答案 2 :(得分:1)

这似乎在项目中发生(可能在其他事情中),这些项目引用了另一个项目,在这两个项目之间存在共享参考。

例如:

Parent project [references package/dll X]
 |
 *-> Child, failing project [also explicitly references package/dll X]

在我的情况下,从失败的项目中删除X引用有助于解决问题。