私はSignalR 2.0.1を使用し、Owin Startupクラスを使用してマッピングしたAsp.Net MVC 4アプリケーションで作業しており、最初は正常に機能していました。
アプリを再構築しようとすると、型が名前空間IAppbuilder
が見つかりませんでしたと突然言いました。
以下は私のスタートアップクラスです
using Microsoft.Owin;
using Owin;
using WhiteBoardApp;
namespace WhiteBoardApp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
Owin
パッケージもインストールしましたが、何らかの理由でOwin Startupクラスが見つからなかったため、通常のクラスを追加し、必要なすべての参照を含めました。どこでミスをしているのかわかりますか
パッケージ管理コンソールを使用してみてください
Update-Package Owin -Reinstall
私は同様の問題を抱えていました。しかし、代わりにOwin、問題はMicrosoft.Owinを引き起こしていました、明らかに
Update-Package Owin -Reinstall
動作しませんでした、Update-Package Owin
しかし
Install-Package Microsoft.Owin
おかげでうまくいきました。
IAppBuilderインターフェースは、Owinパッケージにあります。クラスファイルに参照を追加するだけです。
owinを使用。
そして再構築します。プロジェクトがこれを選択します。
VSがこれを選択しなかった理由はわかりませんが、選択しませんでした。この参照をプロジェクトに追加すると、すべてが適切に配置されました。
プロジェクトのビルド中に同じ問題が発生しました。私の問題を解決するのに役立つ手順は次のとおりです。
Solution Explorer
に移動して、プロジェクトを探しますReferences
;を展開します。問題のある参照に関する警告が表示されるはずですReferences
を右クリックしてManage NuGet Packages
を開きますMicrosoft.Owin
を検索します。ロード後、すでにインストールされていることが示されます(インストールされていますが、正しくインストールされていません。ステップ2でプロパティを確認する>バージョンは0.0.0.0
を示します)Force uninstall, even if there are dependencies on it
を確認してくださいパッケージフォルダーに既に存在するため、
Microsoft.Web.Infrastructure
をインストールできません。ロールバック...
Microsoft.Web.Infrastructure
を見つけますこの種の問題を解決するために読んだ代替案を以下に示します。
幸運を。
何らかの理由で私のVisual Studio 2013は、参照パスが存在することを認識しませんでした。追加されたすべてのパッケージについて、参照の前に黄色の感嘆符が表示されました。 ../packages/をチェックしましたが、すべてのファイルが存在し、正しいパスを参照する.csprojファイルも開きました。
ソリューションを閉じて開くとかなり多くのエラーが返され、ソリューションに含まれるプロジェクトを読み込むことができませんでした。
Visual Studio 2013を再起動すると、原因不明の理由で1日が節約できました。
次のF#での使用は、IAppBuilderを非表示にする問題を提示します。 Owin名前空間を提供するOwin.dllが参照されていても、Owinの規定は不完全なSystem.Web.Http.Owin参照として解釈されていたことがわかります。
open System.Net.Http
open System.Web.Http
open Microsoft.Owin
open Owin
この問題は、使用法を次のように再配置することで解決しました。
open Microsoft.Owin
open Owin
open System.Net.Http
open System.Web.Http
...確かに、これはF#コンパイラに固有のバグである可能性があり、名前の競合はC#などでより適切に処理されます。
私の場合、プロジェクトフォルダーとvsソリューションファイル(.sln)の場所を移動しました。プロジェクトの再追加が完了すると、ソリューションレベルにパッケージフォルダーがあり、プロジェクトフォルダーに残りました。このようにして、そのプロジェクトでは、.csprojファイル内の相対パッケージフォルダーリンクが台無しになりました。
このスレッドのnugetパッケージマネージャーに関する再インストールまたはその他のヒントは役に立ちました。 gitソースコードのdiffでいくつかのパッケージを再インストールした後、csprojファイル内でパッケージフォルダーのパスが変更されていることに気付きました。
前
<HintPath>packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
後
<HintPath>..\packages\Microsoft.Owin.4.0.1\lib\net45\Microsoft.Owin.dll</HintPath>
したがって、同じ問題で実行し、多くのナゲットパッケージがある場合、ソリューション全体を閉じ、vscodeなどのテキストエディターでcsprojファイルを開き、検索と置換で相対リンクを修正する方が簡単な場合があります。次に、VSでソリューションを保存、閉じ、再度開き、nugetパッケージを復元します。これでうまくいくはずです。 (いずれにせよ、プロジェクトレベルでローカルパッケージフォルダーを削除する必要があります。これにより、適切なパッケージが取得されない場合、プロジェクトは本当に失敗します。)