96

VS 2012 で開発された ASP.NET MVC 4 アプリがあります。このアプリは、メイン プロジェクト (MyProject)、単体テスト プロジェクト (MyProject.Tests)、Azure 展開プロジェクト (MyProject.Azure)、およびいくつかのプロジェクトで構成されています。汎用ライブラリ プロジェクト。

ソリューションまたはメイン プロジェクトのいずれかを右クリックして [NuGet パッケージの管理] を選択すると、先月かそこらで明らかに利用可能になった Microsoft の更新プログラムが多数表示されます。[すべて更新] ボタンをクリックすると、明らかに問題なく更新プログラムがインストールされますが、ソリューションをビルドすると、次のエラー メッセージが 2 回表示されます。

warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build

さて、MyProject を参照する 2 つのプロジェクト、MyProject.Tests と MyProject.Azure があります。MyProject.Tests を右クリックして ManageNuGet Packages を選択し、Microsoft.Bcl.Build を追加します。これにより、2 つの警告のうちの 1 つが取り除かれます。しかし、VS には MyProject.Azure プロジェクトの NuGet パッケージを管理するオプションがありません

Microsoft.Bcl.Build パッケージを Azure 展開プロジェクトに追加するにはどうすればよいですか?

編集:

ユーザーswellのおかげで、この問題に対する Microsoft Connect の問題がここで開かれていることがわかりました。

4

5 に答える 5

66

TheESJ が提供する回答は正しいですが、言葉遣いは私にはわかりませんでした。回答についてコメントすることはできないので、ここで詳細を説明します。具体的には、Azureプロジェクトでこの問題が発生しており、警告を消すには次の回避策が必要でした。

VisualStudio で警告をダブルクリックすると、Microsoft.BclBuild.targets ファイルの BclBuildValidateNugetPackageReferences ターゲットに移動します。実際のターゲット要素の上に、プロジェクトの参照チェックを無効にすることについて説明する大きなコメント ブロックがあるはずです。Azure プロジェクトはライブラリ参照を持つことができないため、これらの Azure プロジェクトがこの特定のビルド ターゲットの要件を満たすことは不可能です。

ソリューション?nuget パッケージ参照を実際に追加することはできないため、Azure プロジェクトからの参照チェックを無効にします。

MyProject.csprojを参照するMyAzureProject.ccprojという 2 つのプロジェクトがあるとします。次の手順を実行します:

  1. ソリューション エクスプローラーで [MyAzureProject] を右クリックし、[プロジェクト ファイルの編集] を選択します。
  2. 「MyProject」へのプロジェクト参照を見つけます。次のようになります。

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
    </ProjectReference>
    
  3. ProjectReference 要素内に次の要素を追加します。

      <Properties>SkipValidatePackageReferences=true</Properties>
    
  4. プロジェクト参照は次のようになります。

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
      <Properties>SkipValidatePackageReferences=true</Properties>
    </ProjectReference>
    
  5. ソリューション エクスプローラーで [MyAzureProject] を右クリックし、[プロジェクトの再読み込み] を選択します。

これで再構築できるようになり、エラーはなくなったはずです。

于 2013-09-19T19:34:43.490 に答える
58

警告をダブルクリックすると、警告を無効にするための指示が表示されます。

Nuget をまだサポートしていないプロジェクトからのプロジェクト参照を無効にしても安全です。

Microsoft.Bcl.Build.targets からコピーされた以下の太字の部分を参照してください。

BclBuildValidateNugetPackageReferences

参照に対してSkipValidatePackageReferences=trueを設定することにより、プロジェクト参照に対してこのターゲットを無効にすることができます。

<ProjectReference Include="..\pcl\pcl.csproj">
  <Project>{664a9e98-fac7-4567-a046-0dde95fddb48}</Project>
  <Name>pcl</Name>
  <Properties>SkipValidatePackageReferences=true</Properties>
</ProjectReference>
于 2013-06-21T18:54:15.173 に答える
2

私はこの問題に何度も遭遇し、Properties メソッドは実際に機能しますが、Wix プロジェクトを扱うときは、代わりに次のことを行う必要がありました。

<AdditionalProperties>SkipValidatePackageReferences=true</AdditionalProperties>

Properties Xml ノードを使用すると、新しいエラーが発生しました。

プロジェクト 'MyInstallerProject.csproj' の OutputPath プロパティが設定されていません。このプロジェクトの構成とプラットフォームの有効な組み合わせを指定したことを確認してください。構成='デバッグ' プラットフォーム='x86'. このエラーは、他のプロジェクトがこのプロジェクトへのプロジェクト間参照に従おうとしている場合、このプロジェクトがアンロードされているかソリューションに含まれていない場合、および参照元プロジェクトが同じまたは同等のものを使用してビルドされない場合にも表示されることがあります。構成またはプラットフォーム。

于 2019-02-07T13:48:41.670 に答える