Я обновил свой 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\2.0.0\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.DefaultItems.targets
Я читал в Интернете, и я могу решить эту проблему, добавив <EnableDefaultContentItems>false</EnableDefaultContentItems>
в свой файл .csproj
. Но раньше этого не было, и я не уверен, что означает добавление этой строки.
Единственное, что меня действительно беспокоит, это то, что исходный файл, на который он указывает, находится в dotnet\sdk\2.0.0
, и, как я уже упоминал, проект по-прежнему .NET Core 1.1. Все, что я сделал до сих пор, это установил обновление для VS2017 и SDK 2.0.
Как мне это решить? Я хотел бы, чтобы мой исходный проект скомпилировался, прежде чем я обновлю его до версии 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
, это сработает. Но я не знаю, что это значит и зачем это вдруг нужно...