【问题标题】:get error Assets file 'obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.2'获取错误资产文件“obj\project.assets.json”没有“.NETCoreApp,Version=v2.2”的目标
【发布时间】:2020-03-09 19:18:06
【问题描述】:

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

并在此处更改许多推荐:https://stackoverflow.com/

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

资产文件“obj\project.assets.json”没有“.NETCoreApp,Version=v2.2”的目标。确保恢复已运行,并且您已在项目的 TargetFrameworks 中包含“netcoreapp2.2”

我有 3 个项目,所有项目都升级到 MVC 核心 3.0 也将所有包升级到 3.0 还要删除object文件夹和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>

【问题讨论】:

  • 你能发布你的csproj文件内容吗?
  • 更新问题并发布我的 .csproj 文件

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


【解决方案1】:

确保您的发布配置文件显示 TargetFramework 的 netcoreapp3.0。

【讨论】:

  • 这是我的问题。我从 .netcore 2.2 升级到 3,但我的发布配置文件没有更新。尽管 UI 说它的目标是 .netcore 3.1,但事实并非如此。我去查看了 .pubxml 文件,它仍然有 .netcoreapp2.2 没有使用发布配置 UI 反映。
  • @kingrazor 我的问题已通过您的评论描述解决
【解决方案2】:

在我们的例子中,在从 netcoreapp30 切换到 netcoreapp31 作为目标框架后,我们在发布时遇到了非常相似的错误。我们通过以下方式解决了它:

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

之后我们就可以正常发布项目了。

【讨论】:

    【解决方案3】:

    在您的包管理器控制台中运行以下命令: dotnet restore SolutionName.sln

    【讨论】:

    • 非常适合我,谢谢!有趣的是,控制台引发了错误消息“MSBUILD : error MSB1009: Project file does not exist。” (并不断提高它)但在那之后解决方案仍然可以正常构建。
    【解决方案4】:

    这通常在您升级 .net 核心版本时发生。 解决方案是创建新的发布配置文件。无需编辑,只需创建新的发布配置文件并针对您已升级的新 .net 核心版本。

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-06-14
          • 1970-01-01
          • 2022-07-22
          • 2021-08-19
          • 1970-01-01
          • 2021-01-09
          • 1970-01-01
          • 2017-08-20
          相关资源
          最近更新 更多