web-dev-qa-db-ja.com

project.assets.jsonでのWindows x64専用ASP.NETコアアプリケーション(.NET Framework)エラー

VS 2017を使用して、ASP.NET Core Webアプリケーション(.NET Framework)アプリケーションの構成を簡素化したい。

私のウェブサイトがx64環境のWindows/IISおよび.NET 4.6.2で実行されることは既に知っています。このアプリケーションが開発環境から本番環境まで他の環境を使用する可能性は、予見されることも予見されることもありません。

したがって、デバッグx64モードとリリースx64モードのみが必要です。 (AnyCPUとx86は必要ありません!)そこで、先に進み、プロジェクトから他のすべての構成を削除しました。

今、コンパイル時に、次のエラーが表示されます。

「C:\ Projects\MyProject\My.Website\obj\project.assets.json」には「.NETFramework、Version = v4.6.2/win7-x64」のターゲットがありません。

TargetFramework = 'net462'およびRuntimeIdentifier = 'win7-x64'のこのプロジェクトを復元したことを確認してください。 MD.Website C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets

Windows 7で開発していますが、これを修正する方法がわかりません。何か案が?

21
Adam

何らかの理由で <TargetFramework>私の.csprojファイルは特異でした。 「s」を追加し、「TargetFramework s」になりました。

  <PropertyGroup>
    <TargetFrameworks>net462</TargetFrameworks>
    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
  </PropertyGroup>
29
Adam

TargetFrameworkを変更しませんでした。パッケージマネージャーコンソールで次のコマンドを実行しました。

dotnet restore

そしてうまくいきました! (私はVS2017を使用しており、.netフレームワークを指す.netコアアプリケーションを実行しています)

7
Tiago Ávila

私は手動でx86から​​x64に変更しました。この場合、Visual Studioからパッケージを復元するだけでは機能しませんが、Visual Studioを閉じ、project.assets.jsonを削除し、Visual Studioを再起動して、プロジェクトを再構築するとうまくいきました。私は去った <TargetFramework> 特異な。

コマンドライン nuget restore ...も機能した可能性があります。

3
George Helyar

バージョン2.0にアップグレードした後にdotnetcoreコンソールアプリケーションをローカルフォルダーに公開しようとすると、この問題が発生しました。

すべての削除フォルダーとdotnetの復元を試行し、ApplicationとBuildのすべての設定が2_0になっていることを確認しました。プロファイルを編集するときに2.0が選択されているように表示されていたにもかかわらず、公開プロファイルがまだ1.1をターゲットにしていることに気付きました。そのため、ドロップダウンで2.0を再度選択し、2.0を表示するように概要を更新しましたが、すべて正常に機能しました。

3
James

何らかの理由で <RuntimeIdentifier>私の.csprojファイルが見つかりませんでした。それを追加すると、この問題は解決しました:

<PropertyGroup>
  <TargetFramework>net472</TargetFramework>  
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>      
  <Platforms>AnyCPU;x64</Platforms>
  <LangVersion>7.3</LangVersion>
</PropertyGroup>
1
BluE

実行しようとしている発行の実際の発行プロファイルファイルを確認します。この場合、Coreと通常のasp.netの間で共有する必要のある一連のプロジェクトがあるため、Core 1.1を対象とし、ランタイムバージョンを4.6.1に設定します。すべてのプロジェクトを実行し、それらをターゲットバージョン4.7に更新した後、公開時にこのエラーが発生し始めました(実際のビルドはうまく動作し、ローカルホストのデバッグと同様に、公開されたのがジャッキングされました)。

実際の「ウィジェット-Web Deploy.pubxml」ファイルを確認すると、これが一番下にあります。

    <_DestinationType>AzureWebSite</_DestinationType>
    <TargetFramework>net461</TargetFramework>
    <RuntimeIdentifier>win7-x64</RuntimeIdentifier>
  </PropertyGroup>
</Project>

このスレッドの他の人が言及したように、単に公開プロファイルのプロパティシートを開くと、フレームワークが4.7を対象としていたことがわかります(関連するプロジェクトごとに正確でしたが、実際の値は反映されませんでした) file)...基になる.pubxmlファイルを実際に正しい値で更新するには、[保存]ボタンをクリックする必要がありました。気が向いたら、おそらくそのファイルも手動で編集できます。

これは私に夢中にさせた。 :)

1
Frog Pr1nce

私が公開しようとしたVS2017の.net framework 4.6.1を指す.netコアアプリケーションがあります。プラットフォームターゲットをx86から​​x64に変更し、再度公開しようとしたときにこのエラーが発生し始めましたが、ビルドするのに問題はありませんでした。パブリッシュプロファイルの設定を開いたところ、すべてが正常に見えました(ターゲットランタイムはwin7-x64)が、パブリッシュが正常に動作するには十分でした。

0
Boris