ASP.NET Web应用程序(带有ascx WebUserControl)作为NuGet包

时间:2017-06-21 14:44:35

标签: c# nuget

我非常熟悉为类库创建NuGet包。昨天我测试了对ASP.NET Web应用程序做同样的事情,令我惊讶的是它有用(有点怪 - 有些怪癖)。

我的Web应用程序很简单,只包含一个.ascx WebUserControl。我希望最后我会有一个包含我的控件的DLL,类似于你发布网站并从发布网站的bin中提取控件的结果DLL。然而,事情并非如此。

打包NuGet包然后在其他项目中使用它,这样做会导致.ascx文件被完全复制"到安装了NuGet包的项目。来自NuGet包的.ascx文件可以编辑为正常的.ascx文件允许并仍然引用解决方案中不存在的代码。

所以有一些问题。我的问题是 - 有没有人知道我可以遵循的程序将用户控件编译成DLL,然后可以通过NuGet包分发?

1 个答案:

答案 0 :(得分:0)

  

有没有人知道我可以遵循的程序将用户控件编译成DLL,然后可以通过NuGet包分发?

您可以将用户控件转换为自定义控件,这是一个有关如何执行此操作的详细文档。

Turning an ascx user control into a redistributable custom control

实现这一目标的基本步骤如下:

  1. 像往常一样编写用户控件,通常使用Visual Studio设计器。

  2. 在尝试部署之前使用简单页面对其进行测试。

  3. 部署应用程序以预编译它。

  4. 抓取部署步骤生成的用户控件的程序集,基本上完成了:您拥有自定义控件。

  5. 最后,在其他应用中使用自定义控件的方式与使用自定义控件的方式相同。

  6. 将用户控件编译成DLL后,通过NuGet包分发它应该很容易。

    希望这可以给你一些帮助。