【问题标题】:.NET Standard Extension Libary for asp.net mvc 5's HtmlHelpr and asp.net core mvc's IHtmlHelper用于 asp.net mvc 5 的 HtmlHelper 和 asp.net core mvc IHtmlHelper 的 .NET 标准扩展库
【发布时间】:2019-01-28 02:04:25
【问题描述】:

我的问题:

我希望为 asp.net mvc 5 的 HtmlHelpr 和 asp.net core 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?,下面的demo是我的测试代码。

我的测试演示:

  • 不安装 System.Web.Mvc 和 Microsoft.AspNetCore.Mvc nuget
  • 希望使用 partial 来避免类冲突
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:“xxx.dll”和“xxx.DLL”中都存在“HtmlHelper”类型

【问题讨论】:

    标签: c#


    【解决方案1】:

    在web.config文件的编译标签中添加batch="false"

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

    问题在于 APS 使用应用程序引用和文件夹结构来编译应用程序 如果批处理属性设置为 false,APS 会将每个文件夹编译成单独的程序集 这就像为每个文件夹使用完整的命名空间限定符并避免 dll 冲突

    【讨论】:

    • 谢谢,这是一个解决方案,如果没有其他答案,它将被接受。多谢。 @CodelsLife
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2010-10-03
    相关资源
    最近更新 更多