web-dev-qa-db-ja.com

アセットファイルobj \ project.assets.jsonにはターゲットがありません-VS2017

Visual Studio 2017、AspNetCore 1.1.2を使用する

ソリューションのプロジェクトを公開(リリースビルド)しようとすると、突然次のエラーが発生します。

アセットファイル「C:\ example\obj\project.assets.json」には、「。NETFramework、Version = v4.5.2/win7-x86」のターゲットがありません。復元が実行され、プロジェクトのTargetFrameworksに「net452」が含まれていることを確認します。プロジェクトのRuntimeIdentifiersに「win7-x86」を含める必要がある場合もあります。

project.assets.jsonファイルをチェックインしました。

"targets": {
  ".NETFramework,Version=v4.5.2": {

そして

"runtimes": {
  "win7-x86": {
    "#import": []
  }

私が持っている* .csprojファイルには:

  <PropertyGroup>
      <TargetFramework>net452</TargetFramework>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
      <PlatformTarget>x86</PlatformTarget>
  </PropertyGroup> 

プロジェクトの構成に変更を加えていない。唯一のことは、VS2017を15.6.3の最新バージョンに更新したことです。これは問題を引き起こす可能性がありますか?

20
Paolo B

Microsoftのブログ(奇妙なことに、私のアカウントには投稿する権限がない)によると、これはではないバグであり、完全にReSharperが原因です。これを無効にすると、問題はなくなります。

エラー、1つの問題:このエラーが発生し、ReSharperがありません。

lotを探し回った後、1.0から2.1にアップグレードされた.Net Coreプロジェクトでエラーが発生する理由を見つけました。

プロジェクトをデバッグモードまたはリリースモードで実行すると、すべて正常に機能しましたが、Azureに発行しようとすると、そのエラーが発生しました。

Assets file '(mikesproject)\obj\project.assets.json' doesn't have a target for '.NETCoreApp,Version=v2.0'. Ensure that restore has run and that you have included 'netcoreapp2.0' in the TargetFrameworks for your project

Project\Propertiesで.Net Coreのバージョンを2.1に更新し、さまざまなNugetパッケージをアップグレードしましたが、この変更を反映していない場所が1つありました。それはPublish Profileファイルです。

私はProperties\PublishProfilesフォルダーで、Azureに発行していた方法に関連する.pubxmlファイルを開き、この設定をnetcoreapp2.0からnetcoreapp2.1

<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    . . . 
    <TargetFramework>netcoreapp2.0</TargetFramework>
    . . . 
  </PropertyGroup>
</Project>

ばかげているねえ?

Microsoftのエラーメッセージが、このような問題の原因について手がかりを与えてくれることを願っています。

18
Mike Gledhill

Visual Studioを再起動すると、エラーが解決しました。

18
Ferro

プロジェクトファイルを右クリックし、[アンロード]をクリックします。次に、プロジェクトを右クリックしてリロードします。

4
Paul

私にとって問題は、NuGetフィードの1つがダウンしていて、パッケージが適切に更新されていないことでした。ソリューションでNuGetパッケージの復元を直接実行するまで、NuGetフィードがダウンしていることに関連するエラーメッセージが表示されませんでした。

0
TJ Rockefeller