Asp.net core 使用Visual Studio 2019后,.csproj无法在Linux和macOS构建服务器上复制.json文件

Asp.net core 使用Visual Studio 2019后,.csproj无法在Linux和macOS构建服务器上复制.json文件,asp.net-core,visual-studio-2017,travis-ci,azure-pipelines,visual-studio-2019,Asp.net Core,Visual Studio 2017,Travis Ci,Azure Pipelines,Visual Studio 2019,我有ASP.NET Core 2.2应用程序,我一直在用VS2017开发,当我开始使用VS2019时,发生的第一件事是sln停止构建,错误指向我的.csproj文件,例如 严重性代码说明项目文件行抑制状态 错误NETSDK1022包含重复的“内容”项。默认情况下,.NET SDK包含项目目录中的“内容”项。如果要在项目文件中显式包含这些项,可以从项目文件中删除它们,也可以将“EnableDefaultContentItems”属性设置为“false”。有关详细信息,请参阅。重复的项目是:C:\P

我有ASP.NET Core 2.2应用程序,我一直在用VS2017开发,当我开始使用VS2019时,发生的第一件事是sln停止构建,错误指向我的.csproj文件,例如

严重性代码说明项目文件行抑制状态 错误NETSDK1022包含重复的“内容”项。默认情况下,.NET SDK包含项目目录中的“内容”项。如果要在项目文件中显式包含这些项,可以从项目文件中删除它们,也可以将“EnableDefaultContentItems”属性设置为“false”。有关详细信息,请参阅。重复的项目是:C:\Program Files\dotnet\sdk\3.0.100\sdk\Microsoft.NET.sdk\targets\Microsoft.NET.sdk.DefaultItems.targets 316上的“plugin.json”ForkMeRibbon

原因是,在我的csproj中,我有一些.json文件需要在构建时包含,因此我的.csproj文件中有以下几行代码,它们在VS2017中运行良好,但VS2019会抱怨。在我删除这些行之后,一切都在VS2019中运行

<ItemGroup>
   <Content Include="plugin.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

然而,在我将代码签入github后,Azure Pipeline、AppVeyor和Travis CI的构建服务器并不满意,他们抱怨找不到我的“plugin.json”文件。经过一些努力,我能够通过将yml文件中的
image:visualstudio 2017
更改为
image:visualstudio 2019
来修复AppVeyor的构建

构建服务器似乎配置了VS2017 ish配置,除非您告诉它使用VS2019兼容配置,否则它不会复制我的json文件,从而导致错误。到目前为止,所有Windows版本都正常,但Azure Pipeline和Travis CI上的Linux和macOS版本不正常,例如,这里有一条消息,消息
错误MSB3030:无法复制文件“bin/Debug/netcoreapp2.2/plugin.json”,因为找不到该文件。


还有其他人遇到过这个问题吗?您是如何解决的?

您可以将
Include=
更改为
Update=
,然后重试。谢谢!我尝试了
Update=
并且VS2019能够构建,但是Linux和macOS构建仍然失败,并显示相同的错误消息。我的猜测是,我需要在.yml文件中进行某些配置,以便让Linux和macOS服务器环境知道我的项目与VS2019兼容,以便它们在构建过程中自动复制我的.json文件。有什么想法吗?您的Travis CI配置使用.NET Core SDK 2.2.402,它比Windows CI任务使用的3.0.100旧得多。您可以尝试将macOS和Linux的.NET Core SDK更新为3.0.100,然后查看问题是否仍然存在。我以前在Travis CI上尝试过将其设置为3.0.100,但没有成功。我的下一步是将我的应用升级到Core 3,到时候我会看看会发生什么。谢谢