web-dev-qa-db-ja.com

プロジェクトファイルの横にあるUWPアプリMicrosoft.Bcl.Buildとpackages.configのビルドエラー

Windowsユニバーサルアプリをビルドするときに、奇妙なビルドエラーが発生します。

重大度コード説明プロジェクトファイル行の抑制状態エラーC:\ Users\me\Source\Repos\TT\Windows\MyCommonLibrary\packages.configが見つかりませんでした。このプロジェクトにMicrosoft.Bcl.Buildがインストールされており、packages.configがプロジェクトファイルの横にあることを確認してください。 MyApp

「MyApp」には「MyCommonLibrary」へのプロジェクト参照があります。

本当に奇妙なのは、ビルドの「エラー」として表示されているにもかかわらずです。これは、「MyApp」または「MyCommonLibrary」をビルドする機能には影響しません。

また、アプリをローカルまたはその他の方法でデプロイして実行することも妨げられません。ビルドが壊れないのに、これがビルドエラーとしてリストされているのを見るのは面倒です!

17
emseetea

Bcl.Buildパッケージの所有者にフォローアップし、Eric St.Johnから応答がありました。彼は、project.jsonを使用するUWPプロジェクトでBcl.Buildを参照するべきではないと言い、そうするように指示する警告を抑制するためのプロジェクトプロパティがあります。

正解です。問題は、それを使用するほとんどのパッケージがUWPについても認識していないことです。また、UWP用に更新する場合は、この依存関係を機能させるのではなく削除する必要があります。このパッケージは、UWPやproject.jsonをサポートするフレームワークにはまったく必要ありません。

古いパッケージのエラーを回避するには、次の手順を実行します。

Csproj/vbprojの上部にある<SkipValidatePackageReferences> true </ SkipValidatePackageReferences>を追加します

13
RandomEngy

これは Nuget Update から3.1までの誤検知だと思います。

しばらくの間、私はpackages.configを作成することでそれを解決しました。VisualStudioは既存のproject.jsonから手動で要求します。

例えば:

project.json

{
  "dependencies": {
    "Microsoft.Bcl.Build": "1.0.21",
    "Newtonsoft.Json": "8.0.2"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="uap10.0" />
  <package id="Newtonsoft.Json" version="8.0.2" targetFramework="uap10.0" />
</packages>
3
Amenti