.NET Core 1.1 - 获得 "Duplicate 'Content' items were included"
.NET Core 1.1 - getting "Duplicate 'Content' items were included"
我已经将我的 VS2017 更新到最新的 15.3.0 并安装了 .NET Core SDK 2.0(我想将现有的 .NET 1.1 应用程序升级到 2.0)。
现在,当我打开编译正常的项目(尚未更改其中的任何内容)并尝试编译时,我得到:
Duplicate 'Content' items were included.
The .NET SDK includes 'Content' items from your project directory by default.
You can either remove these items from your project file, or set the 'EnableDefaultContentItems' property to 'false' if you want to explicitly include them in your project file.
For more information, see https://aka.ms/sdkimplicititems. The duplicate items were: 'wwwroot\index.html'
在有问题的文件下它指向 C:\Program Files\dotnet\sdk.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets
我已经在线阅读,我可以通过将 <EnableDefaultContentItems>false</EnableDefaultContentItems>
添加到我的 .csproj
文件来解决这个问题。但它以前不存在,我不确定添加这一行意味着什么。
有一次真正困扰我的是它指向的源文件在 dotnet\sdk.0.0
中——正如我提到的,该项目仍然是 .NET Core 1.1。到目前为止,我所做的只是安装 VS2017 和 2.0 SDK 的更新。
我该如何解决这个问题?我希望在将其升级到 2.0 之前编译我的原始项目。
编辑
我的 csproj
文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Content Include="wwwroot\index.html" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4" Version="1.5.2" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.4.1" />
</ItemGroup>
<ItemGroup>
<Content Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="web.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Update="NLog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
如前所述,如果我将 <EnableDefaultContentItems>false</EnableDefaultContentItems>
添加到 PropertyGroup
,它就会起作用。但是我不知道这个是什么意思或者为什么突然需要它...
删除包含
的<ItemGroup>
元素
<Content Include="wwwroot\index.html" />
此项已包含在 Microsoft.NET.Sdk.Web
中,因此定义了两次。
死灵法术。
或者,执行以下操作:
- 在解决方案资源管理器中单击 'Show All Files'
- 右键单击 'wwwroot' select 'Exclude From Project'
- 右键单击 'wwwroot' select 'Include in Project'
错误现已消失。
比手动编辑更安全。
我已经将我的 VS2017 更新到最新的 15.3.0 并安装了 .NET Core SDK 2.0(我想将现有的 .NET 1.1 应用程序升级到 2.0)。
现在,当我打开编译正常的项目(尚未更改其中的任何内容)并尝试编译时,我得到:
Duplicate 'Content' items were included.
The .NET SDK includes 'Content' items from your project directory by default.
You can either remove these items from your project file, or set the 'EnableDefaultContentItems' property to 'false' if you want to explicitly include them in your project file.
For more information, see https://aka.ms/sdkimplicititems. The duplicate items were: 'wwwroot\index.html'
在有问题的文件下它指向 C:\Program Files\dotnet\sdk.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets
我已经在线阅读,我可以通过将 <EnableDefaultContentItems>false</EnableDefaultContentItems>
添加到我的 .csproj
文件来解决这个问题。但它以前不存在,我不确定添加这一行意味着什么。
有一次真正困扰我的是它指向的源文件在 dotnet\sdk.0.0
中——正如我提到的,该项目仍然是 .NET Core 1.1。到目前为止,我所做的只是安装 VS2017 和 2.0 SDK 的更新。
我该如何解决这个问题?我希望在将其升级到 2.0 之前编译我的原始项目。
编辑
我的 csproj
文件:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Content Include="wwwroot\index.html" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4" Version="1.5.2" />
<PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.1" />
<PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.4.1" />
</ItemGroup>
<ItemGroup>
<Content Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Update="web.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Update="NLog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
如前所述,如果我将 <EnableDefaultContentItems>false</EnableDefaultContentItems>
添加到 PropertyGroup
,它就会起作用。但是我不知道这个是什么意思或者为什么突然需要它...
删除包含
的<ItemGroup>
元素
<Content Include="wwwroot\index.html" />
此项已包含在 Microsoft.NET.Sdk.Web
中,因此定义了两次。
死灵法术。
或者,执行以下操作:
- 在解决方案资源管理器中单击 'Show All Files'
- 右键单击 'wwwroot' select 'Exclude From Project'
- 右键单击 'wwwroot' select 'Include in Project'
错误现已消失。
比手动编辑更安全。