web-dev-qa-db-ja.com

ASP.NET MVCプロジェクトの名前変更エラー

以前のプロジェクトをコピーし、名前を変更しました。すべての名前空間の名前を変更すると、正しくビルドされます。アプリケーションを実行すると、次のエラーが表示されました。

The following errors occurred while attempting to load the app.
- The OwinStartup attribute discovered in Assembly 'User Manager Interface' referencing    startup type 'User_Manager_Interface.Startup' conflicts with the attribute in Assembly   'Service Monitor Web Interface' referencing startup type  'Service_Monitor_Web_Interface.Startup' because they have the same FriendlyName ''. Remove or   rename one of the attributes, or reference the desired type directly.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

下の最初の行をコメントアウトすると、エラーがなくなることがわかりました。

//[Assembly: OwinStartupAttribute(typeof(Service_Monitor_Web_Interface.Startup))]
namespace Service_Monitor_Web_Interface
{
public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}
}

ソリューションの名前をUser_Manager_InterfaceからService_Monitor_Web_Interfaceに変更しました。

私は古い名前の場所を見つけることができないようです。

75
Zapnologica

私はすでにこの問題を数回抱えていたので、自分自身へのリマインダーとしても従う手順を書き留めます。

  1. 古いソリューション名をすべて新しいものに置き換えます。
  2. 各プロジェクトの下のPropertiesに移動し、Assembly NameおよびDefault Namespaceフィールドを新しいソリューション名に変更します。
  3. ソリューションフォルダーに移動し、すべてのプロジェクトフォルダーの名前を新しいソリューション名に変更します。
  4. binおよびobjフォルダーの下のすべてのファイルを削除します。
  5. ソリューションはプロジェクトをロードできません。すべてのプロジェクトを削除して、再度追加します。
  6. プロジェクトを再ビルドします。
166

この問題は、ObinStartupクラスを含む2つのアセンブリが同じbinフォルダーにある場合に発生します。通常、同じWebアプリケーションに対して2つのOwinStartupクラスを使用しないでください。

これを解決するには、binフォルダーを調べます。名前を変更した後、古い名前のアセンブリがbinフォルダーに残っている場合、このエラーが発生します。それを解決するには、binフォルダーからすべてを削除します。

30
Milen Kovachev

ソリューションのアセンブリの名前を変更した後、私は同じ問題を抱えていました。

OwinStartupAttritbuteが新しいアセンブリ名を参照していることを確認して解決しました。

次に、binフォルダーにある古いアセンブリを削除します。

12
Yaobin Then

ソリューションの名前は変更しませんでしたが、この問題に遭遇しました。私はこれについてどこでも掲示される解決策を見つけることができませんでした。同じサーバー上にowinスタートアップクラスを持つ2つの個別のプロジェクトがありました。例外メッセージで提案されているように、それぞれに異なる「フレンドリ名」を付けるだけで解決しました。これに関する良い記事を見つけました。

Owin Startup Class

名前を変更するには、OwinStartupに文字列を追加するだけです。

[アセンブリ:OwinStartup( "ProductionConfiguration"、typeof(StartupDemo.ProductionStartup2))]]

8
aoakeson

Web config appsettingに次のタグを追加します

<appSettings>
   <add key="owin:AutomaticAppStartup" value="false" />   
</appSettings>
3
Amit Jaiswal

2つのASP .NET MVC 5プロジェクト、Project1とProject2があります。

問題は、2つのプロジェクトのDLLが同じbinフォルダーにあり、両方がOwinミドルウェアを使用していることです。これは、Project1.dllとProject2.dllが同じbinフォルダーに存在することを意味しますプロジェクト2。

各プロジェクトで必要なのはいずれか1つだけなので、Project2のbinフォルダーにある未使用のProject1.dllを削除するだけです。

1
ChunLin
0