重命名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。

我似乎找不到任何具有旧名称的地方,但是在提及它的错误中却显得如此。


我有同样的问题。有任何答案或找到解决方案的运气吗?
克里斯·斯托里

我刚刚删除了该项目,然后重新开始。仅重命名类和名称空间。
Zapnologica

Answers:


170

我已经有几次这个问题了,所以我会写下我遵循的程序,以提醒自己:

  1. 将所有旧解决方案名称替换为新名称。
  2. 导航到每个项目下的“属性”,然后将“程序集名称”和“默认命名空间”字段更改为新的解决方案名称。
  3. 转到解决方案文件夹,然后使用新的解决方案名称重命名所有项目文件夹。
  4. 删除binobj文件夹下的所有文件。
  5. 解决方案将无法加载项目。删除所有项目,然后再次添加它们。
  6. 重新生成项目。

86
谢谢。我只需要删除“ bin”文件夹中的内容。
Nicolas 2014年

2
我删除了引用原始项目和Boom的特定DLL!回到工作。谢谢!
dunwan 2014年

1
随后进行了多次重命名,此方法终于成功了。谢谢
madvora

7
如果您的网站在Azure上托管,则需要清洁发布到网上删除下的bin文件和文件夹的obj:stackoverflow.com/questions/17476525/...
Amadeusz维乔雷克

我修复它的方法是选择“启动”类文件,然后将“构建操作”从“编译”更改为“内容”。
阿基

31

如果您在同一个bin文件夹中有两个包含OwinStartup类的程序集,则会出现此问题。通常,同一Web应用程序不应具有两个OwinStartup类。

您可以通过检查bin文件夹来解决此问题。重命名后,如果将具有旧名称的部件保留在bin文件夹中,则会出现此错误。要解决该问题,请从bin文件夹中删除所有内容。


12

重命名解决方案的组装后,我遇到了同样的问题。

我通过确保OwinStartupAttritbute引用了我的新程序集名称来解决。

接下来是删除在bin文件夹中找到的旧程序集。


8

我没有重命名我的解决方案,但确实遇到了这个问题。我找不到有关此问题的解决方案。我在同一服务器上有2个单独的项目,它们带有owin启动类。我只是按照异常消息中的建议,给每个人一个不同的“友好名称”,它就解决了。我找到了一篇很好的文章:

Owin初创班

要重命名它,您需要做的就是在OwinStartup上添加一个字符串,如下所示:

[程序集:OwinStartup(“ ProductionConfiguration”,typeof(StartupDemo.ProductionStartup2))]



1

我有两个ASP .NET MVC 5项目Project1和Project2。

问题是两个项目的DLL位于同一bin文件夹中,并且都使用Owin中间件。这意味着Project1.dll和Project2.dll存在于Project2的同一bin文件夹中。

由于在每个项目中只需要其中一个,所以我只需要删除Project2 bin文件夹中未使用的Project1.dll。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.