【问题标题】:Error renaming ASP.NET MVC project重命名 ASP.NET MVC 项目时出错
【发布时间】:2014-03-09 04:57:03
【问题描述】:

我复制了一个以前的项目并将其重命名。一旦我成功地重命名了所有命名空间并且它构建正确。运行应用程序时出现以下错误:

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。

我似乎找不到任何使用旧名称的地方,但它提到的错误中存在差异。

【问题讨论】:

  • 我也有同样的问题。找到解决方案的任何答案或运气?
  • 我刚刚删除了项目并重新开始。只重命名类和命名空间。

标签: asp.net-mvc asp.net-mvc-5 owin asp.net-authentication


【解决方案1】:

重命名解决方案的程序集后我遇到了同样的问题。

我通过确保 OwinStartupAttribute 引用我的新程序集名称来解决问题。

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

【讨论】:

    【解决方案2】:

    我已经遇到过几次这个问题,所以我会写下我遵循的程序作为对自己的提醒:

    1. 将所有旧解决方案名称替换为新名称。
    2. 导航到每个项目下的 Properties,并将 Assembly NameDefault Namespace 字段更改为新的解决方案名称。
    3. 转到解决方案文件夹并使用新的解决方案名称重命名所有项目文件夹。
    4. 删除 binobj 文件夹下的所有文件。
    5. 解决方案将无法加载项目。删除所有项目并重新添加。
    6. 重新构建项目。

    【讨论】:

    • 谢谢。我只需要删除“bin”文件夹的内容。
    • 我删除了引用原始项目的特定 DLL 和 Boom!回到工作。谢谢!
    • 遵循了多次重命名 How-Tos,这是最终奏效的。谢谢
    • 如果您的网站托管在 Azure 上,您需要 clean-publish 以在线删除 bin 和 obj 文件夹下的文件:stackoverflow.com/questions/17476525/…
    • 我修复它的方法是选择启动类文件并将构建操作从“编译”更改为“内容”。
    【解决方案3】:

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

    Owin Startup Class

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

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

    【讨论】:

      【解决方案4】:

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

      您可以通过检查您的 bin 文件夹来解决此问题。如果重命名后旧名称的程序集仍保留在 bin 文件夹中,您将收到此错误。要解决它,请从 bin 文件夹中删除所有内容。

      【讨论】:

        【解决方案5】:

        【讨论】:

        • 这只有在程序集被重命名并且两个副本仍然存在于 /bin 时才有效。
        【解决方案6】:

        在 web config appsetting 上添加以下标签

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

        【讨论】:

          【解决方案7】:

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

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-09-07
            • 2011-09-16
            • 1970-01-01
            • 1970-01-01
            • 2017-02-21
            • 2016-02-15
            相关资源
            最近更新 更多