web-dev-qa-db-ja.com

Visual Studio2015-Webプロジェクトに[共有プロジェクトの参照]タブがありません

共有プロジェクトについて読むことに非常に興奮していたので、MSDNサブスクリプションからVisual Studio2015にアップグレードしました...コードを再利用するだけで依存関係の21382nugetパッケージを管理する必要はもうありません。

そこで、いくつかのコードを含むテスト共有プロジェクトを構築しました。次に、.Net4.6上の新しい空のWebアプリケーションをプロジェクトに追加します。参照に移動して、参照ウィンドウに[共有プロジェクト]タブが表示されることを期待していましたが、表示されません。

これで、同じソリューションにクラスライブラリを追加でき、タブが表示され、共有参照を追加できます。ただし、共有プロジェクトをWebアプリケーションに追加できません。

この概念を使用して、複数のMVCプロジェクトとビューを共有できることを望んでいました。

ここで何かが足りないのですか、それとも共有プロジェクトがWebプロジェクトと互換性がないのですか?

これを回避する唯一の方法は、構築するWebアプリケーションごとに2つのプロジェクトを用意することです。コード用に1つ、コンテンツ用に1つ。

例えば

XYZ.SomeWebSite.Code (Class Library Project Type) -> references Shared Project
XYZ.SomeWebSite (Web Project Type)

ただし、このルートを使用すると、ビュー、テキストファイル、cssファイル、javascriptファイルなどをWebアプリケーションにプッシュできなくなります。

23
Ryan Mann

【仮回答】

Webアプリケーションのcsprojファイルを手動で編集することで、この問題を回避することができました。

手順は次のとおりです。

  1. Webアプリケーションプロジェクトをアンロードします
  2. プロジェクトを右クリックして[編集...]をクリックして、*。csprojファイルを編集します。
  3. 次に、ProjectTypeGuids要素を探します。

    {349C5851-65DF-11DA-9384-00065B846F21}; {fae04ec0-301f-11d3-bf4b-00c04f79efbc}

最初のGUIDはASP.NetMVC 5プロジェクトのGUIDであり、2番目のGUIDはC#用です。

最初のGUIDとセミコロンを一時的に削除し、c#GUID(2番目のGUID)だけを残すだけです。

プロジェクトをリロードし、共有プロジェクトを追加します。それらがすべて追加されたら、プロジェクトファイルを編集し、最初のGUIDとセミコロンを元に戻します。

プロジェクトをリロードします。

共有プロジェクト参照は引き続き存在し、Webアプリケーションにビルドおよびリンクされます。

オプションで、共有プロジェクトの参照を手動で追加できます。形式は次のとおりです。

<Import Project="..\XYZ.UPlugin\XYZ.Plugin.projitems" Label="Shared" />
44
Ryan Mann