代码之家  ›  专栏  ›  技术社区  ›  Wei Lin

.NET标准扩展库,用于ASP.NET MVC 5的HTMLHelper和ASP.NET核心MVC的IHTMlHelper

c#
  •  0
  • Wei Lin  · 技术社区  · 6 年前

    我的问题:

    我希望为ASP.NET MVC 5的HTMLHelper和ASP.NET核心MVC的IHTMlHelper创建一个.NET标准扩展库。

    Is it Possible to create a mini .NET Standard Class Libary without install System.Web.Mvc and Microsoft.AspNetCore.Mvc nuget package,and support all of them? 下面的演示是我的测试代码。

    我的测试演示:

    • 不安装system.web.mvc和microsoft.aspnetcore.mvc nuget
    • 希望使用分部来避免类冲突
    namespace Microsoft.AspNetCore.Mvc.Rendering
    {
        public partial interface IHtmlHelper{}
    }
    
    namespace System.Web.Mvc
    {
        public partial class HtmlHelper { }
    }
    
    namespace TestExtension
    {
        public static class TestExtension
        {
            public static void TestDemo(this IHtmlHelper htmlHelper) { }
            public static void TestDemo(this HtmlHelper htmlHelper) { }
        }
    }
    

    错误信息

    当我将lib dll添加到ASP.NET MVC项目时,会出现此错误。

    编译器错误消息:cs0433:类型“htmlhelper”同时存在于“xxx.dll”和“xxx.dll”中

    1 回复  |  直到 6 年前
        1
  •  2
  •   CodeIsLife    6 年前

    在web.config文件的编译标记中添加batch=“false”

        web.config file:
    
    <configuration …>
      <system.web>
        <compilation … batch=″false″/>
    

    问题是APS使用应用程序引用和文件夹结构来编译应用程序 如果批处理属性设置为假,则APS将把每个文件夹编译成单独的程序集。 就像对每个文件夹使用一个完整的名称空间限定符,并避免DLL冲突。