获取错误ssets文件'obj \ project.assets.json'没有针对'.NETCoreApp,Version = v2.2'的目标

时间:2019-11-13 22:18:48

标签: c# asp.net-core asp.net-core-mvc asp.net-core-3.0

我将我的MVC核心项目从2.2升级到3.0 microsoft

并使用此https://stackoverflow.com/

更改许多thisnk

在本地运行时可以正常工作,但是当我要在本地文件夹中发布时出现此错误

  

ssets文件'obj \ project.assets.json'没有针对'.NETCoreApp,Version = v2.2'的目标。确保还原已运行,并且已在项目的TargetFrameworks中包含“ netcoreapp2.2”

我有3个项目,所有这些项目都升级到MVC core 3.0,也将所有软件包都升级到3.0 还要删除对象文件夹和bin文件夹并再次构建项目,关闭VS并再次将其打开,但错误仍然存​​在。

更新:mvc项目csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>


 </PropertyGroup>


  <ItemGroup>
<!--<PackageReference Include="Microsoft.AspNetCore.App" />-->
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0" 
 />

 <PackageReference 
 Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" 
Version="3.0.0" />
</ItemGroup>


<ItemGroup>
  <Folder Include="Areas\Admin\Data\" />
  <Folder Include="Areas\Admin\Models\" />
 </ItemGroup>


<ItemGroup>
  <ProjectReference Include="..\project.Model\project.Model.csproj" />
  <ProjectReference Include="..\project.Repo\project.Repo.csproj" />
</ItemGroup>

</Project>

我的项目。MOdel.csproj

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>

</PropertyGroup>

<ItemGroup>
<PackageReference 
Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.0.0" 
/>
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.0.0" 
/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" 
 Version="3.0.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
   buildtransitive</IncludeAssets>
  </PackageReference>
  <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" 
 Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" 
 Version="1.1.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" 
 Version="3.0.0">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; 
 buildtransitive</IncludeAssets>
 </PackageReference>
 </ItemGroup>

 </Project>

5 个答案:

答案 0 :(得分:1)

确保您的发布配置文件对TargetFramework说netcoreapp3.0。

答案 1 :(得分:1)

在Package Manager控制台中,运行以下命令: dotnet还原SolutionName.sln

答案 2 :(得分:1)

在我们的案例中,从netcoreapp30切换到netcoreapp31作为目标框架后,发布时发生了非常类似的错误。我们通过以下方式解决了该问题:

  1. 关闭Visual Studio
  2. 删除文件\ obj \ project.assets.json
  3. 再次打开解决方案
  4. 重建解决方案

此后,我们就可以很好地发布项目。

答案 3 :(得分:0)

如果您在 lambda 中执行此操作,请确保更新 aws-lambda-tools-defaults.jsonserverless.template 文件。

答案 4 :(得分:0)

如果您使用命令行运行发布 (dotnet publish),请确保您使用选项“-f”指定了正确的框架。