Помилка перейменування проекту ASP.NET MVC


78

Я скопіював попередній проект і перейменував його. Після того, як я успішно перейменував усі простори імен, і він побудований правильно. Під час запуску програми я отримав таку помилку:

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.

Здається, я не можу знайти жодного місця зі старою назвою, тому в помилці, в якій це згадується.


У мене те саме питання. Будь-які відповіді чи удача, щоб знайти рішення?
Chris Story

Я просто видалив проект і почав знову. Лише перейменування класів та простору імен.
Zapnologica

Відповіді:


170

У мене це питання було кілька разів, тому я запишу процедуру, якої дотримуюсь, також як нагадування для себе:

  1. Замініть усе старе ім'я рішення на нове.
  2. Перейдіть до Властивості під кожним проектом і змініть поля Ім'я збірки та Простір імен за замовчуванням на нове ім’я рішення.
  3. Перейдіть до папки рішення та перейменуйте всі папки проекту на нову назву рішення.
  4. Видаліть усі файли з папок bin та obj .
  5. Рішення не зможе завантажувати проекти. Видаліть усі проекти та додайте їх знову.
  6. Перебудуйте проект.

86
Дякую. Все, що мені потрібно було видалити вміст папки "bin".
Ніколас

2
Я видалив конкретні бібліотеки DLL, що посилаються на оригінальний проект та Boom! знову в бізнесі. Дякую!
dunwan

1
Потім відбулося багаторазове перейменування інструкцій, і це, нарешті, спрацювало. Дякую
madvora

7
Якщо ваш веб-сайт розміщений на Azure, вам потрібно очистити публікацію, щоб видалити файли з папок bin та obj в Інтернеті: stackoverflow.com/questions/17476525/…
Amadeusz Wieczorek

Я це виправив, вибравши файл класу автозавантаження та змінивши Дію побудови на "Вміст" із "Компілювати".
Акі

31

Ця проблема виникає, якщо у вас є дві збірки в одній папці bin, які містять клас OwinStartup. Зазвичай у вас не повинно бути двох класів OwinStartup для однієї веб-програми.

Ви можете вирішити це, перевіривши папку для сміття. Якщо після перейменування збірка зі старою назвою залишилася в папці bin, ви отримаєте цю помилку. Для його вирішення видаліть все з папки bin.


12

У мене була та ж проблема після перейменування збірки рішення.

Я вирішив, переконавшись, що OwinStartupAttritbute посилається на моє нове ім'я збірки.

Далі потрібно видалити стару збірку, знайдену в папці bin.


8

Я не перейменовував своє рішення, але натрапив на цю проблему. Я не міг знайти рішення про це десь розміщене. У мене було 2 окремих проекти з класом запуску owin на тому самому сервері. Я просто дав кожному різне "дружнє ім'я", як пропонувалось у повідомленні про виняток, і це вирішило. Я знайшов хорошу статтю про це:

Owin Startup Class

Щоб перейменувати його, потрібно лише додати рядок на OwinStartup Ось так:

[збірка: OwinStartup ("ProductionConfiguration", typeof (StartupDemo.ProductionStartup2))]


3

Додайте наступний тег до налаштування веб-конфігурації

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

1

У мене є два проекти ASP .NET MVC 5, Project1 та Project2.

Проблема полягає в тому, що DLL двох проектів знаходиться в одній папці bin, і обидва використовують проміжне програмне забезпечення Owin. Це означає, що Project1.dll та Project2.dll існують в одній папці bin Project2.

Оскільки мені потрібен лише один із них у кожному проекті, тому я просто видаляю невикористаний Project1.dll у папці bin Project2.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.