![](/img/trans.png)
[英]How do I Install, Update, Register a Nuget package on the Web Server that does not have Nuget or Visual Studio installed?
[英]Debugging a nuget of an entire web installed into an empty web app
我们正在开发一个核心ASP.NET MVC Web项目和一个以MvcContrib插件Web项目形式出现的客户插件-一个作为区域注入到核心Web中的Web项目。 该插件是核心项目中的一个软参考,因此可以完全单独开发并插入。
我正在尝试生成一种调试/编码插件的方法,以便可以独立于核心Web开发多个自定义插件。
开发人员只需要担心编码和测试插件代码。 另外,我不希望他们在此自定义插件项目中更改核心代码-无论如何都应该在核心中完成。
我以NuGet软件包的形式创建了核心网站,并包含了所有必需的文件,以便可以将其包含在网站中。
我的想法是,我可以创建一个空网站,安装我的核心网站,并且开发人员可以拥有一个由F5驱动的调试环境。
我通过创建一个空白的Mvc项目进行了测试,安装了我的核心软件包并包括了我的一个插件。 我将这个空的Web应用程序的命名空间更改为核心Web的命名空间,以为Visual Studio调试可以正确地附加到我的核心程序集。
在空应用程序中进行简单的VS调试无法正常工作-我收到HTTP异常,很可能是由于未注册我的路由。 我也看到我的log4net没有创建它的日志文件夹,所以我知道程序集的应用程序启动没有被调用。
因此,我看到VS并未附加并调用我的核心程序集。
我可以将此空网站用作nuget安装的网站的主机项目并进行调试吗? 如果是这样,我缺少什么配置?
如果没有,如何将核心站点包含在每个客户插件项目中,以便可以将DLL放到bin中并对其进行调试?
使用:Visual Studio 2010
ASP.NET MVC2
我们运作良好的方式是结合使用Web Activator和Razor Generator (作为Visual Studio扩展提供 )。 为了访问核心Web应用程序中的视图,使用客户端的应用程序需要了解它们,这是因为它们都作为文件引用包含在Nuget包(messy)中,或者因为它们已编译到核心Web dll中。 您可以使用Razor Generator来实现。 通过Nuget安装后,您需要将每个.cshtml
文件的“ Custom Tool
属性更改为RazorGenerator
,这将为每个视图创建一个.generated.cs
文件。 这将使您的示例客户端可以使用核心Web应用程序中的布局和视图。
David Ebbo 在Razor Generator上有一些有用的博客文章
结合使用Web Activator来创建一个PostActivationStartMethod
来运行您的初始化代码(例如,初始化Log4Net
),那么您应该一切顺利。 我们已经在两种情况下运行了此操作-通过Nuget使用框架包并直接添加项目参考。 调试不适用于使用Nuget软件包的路由,但是我们没有在Nuget软件包中包含pdb文件。 我们可以在直接添加项目引用时进行调试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.