Asp.net mvc 调试安装到空web应用程序中的整个web的nuget 我们正在开发一个核心ASP.NET MVC Web项目和一个MVCCONTIB插件Web项目的形式的客户插件——一个Web项目作为核心区域注入到核心网中。该插件是核心项目中的一个软参考,因此它可以完全单独开发并插入

Asp.net mvc 调试安装到空web应用程序中的整个web的nuget 我们正在开发一个核心ASP.NET MVC Web项目和一个MVCCONTIB插件Web项目的形式的客户插件——一个Web项目作为核心区域注入到核心网中。该插件是核心项目中的一个软参考,因此它可以完全单独开发并插入,asp.net-mvc,nuget,visual-studio-debugging,Asp.net Mvc,Nuget,Visual Studio Debugging,我正在尝试生成一种调试/编码插件的方法,以便可以独立于核心web开发多个自定义插件 开发人员只需担心编码和测试插件代码。另外,我不希望他们在这个定制插件项目中更改核心代码——无论如何,这应该在核心中完成 我将核心web创建为一个NuGet包,并包含了所有必要的文件,因此我可以将其包含在web中 我的想法是,我可以创建一个空的web,安装我的核心web,开发人员可以拥有一个F5驱动的调试环境 我通过创建一个空白的Mvc项目进行测试,安装了我的核心包,并包含了我的一个插件。我将这个空web应用程序的

我正在尝试生成一种调试/编码插件的方法,以便可以独立于核心web开发多个自定义插件

开发人员只需担心编码和测试插件代码。另外,我不希望他们在这个定制插件项目中更改核心代码——无论如何,这应该在核心中完成

我将核心web创建为一个NuGet包,并包含了所有必要的文件,因此我可以将其包含在web中

我的想法是,我可以创建一个空的web,安装我的核心web,开发人员可以拥有一个F5驱动的调试环境

我通过创建一个空白的Mvc项目进行测试,安装了我的核心包,并包含了我的一个插件。我将这个空web应用程序的名称空间更改为核心web的名称空间,认为Visual Studio调试将正确地附加和我的核心程序集

空应用程序中的简单VS调试不起作用——我收到一个HTTP异常,很可能是因为我的路由未注册。我还看到我的log4net没有创建它的logs文件夹,所以我知道程序集的appstart没有被调用

所以我看到VS没有连接到我的核心组件并调用它

我可以将此空web用作nuget安装web和调试的主机项目吗?如果是,我缺少什么配置?

如果没有,我如何在每个客户插件项目中包含核心web,以便将DLL放入bin并调试它?

使用: VisualStudio2010


ASP.NET MVC2

我们做得很好的方式是使用Web Activator和(作为一个可用的)的组合。为了访问核心web应用程序中的视图,消费客户端应用程序需要了解它们,因为它们都作为文件引用包含在Nuget包中(凌乱),或者因为它们被编译到核心web dll中。你可以用剃须刀发电机来做。通过Nuget安装后,您需要将每个
.cshtml
文件的
自定义工具属性更改为
RazoGenerator
,这将为每个视图创建一个
.generated.cs
文件。这将允许示例客户机使用核心web应用程序的布局和视图

大卫·艾博有一些有用的建议


将其与Web Activator结合,创建一个运行初始化代码的
PostActivationStartMethod
(例如初始化
Log4Net
),您应该可以开始了。我们已经在两个场景中运行了它——通过Nuget使用框架包和直接添加项目引用。调试不适用于Nuget包使用路由,但我们不在Nuget包中包含pdb文件。我们可以在直接添加项目引用时进行调试

您是否将
Global.asax
及其自己的
应用程序\u Start
方法留在空的web应用程序中?如果核心应用程序中有需要在应用程序启动时运行的代码,则如果消费应用程序有自己的应用程序启动方法,则不会运行。另外,您看过Web Activator吗?我们正在构建一个类似的设置,并将其用于启动代码:Global.asax?是的:我想到了。实际上,我删除了所有内容——包括web.config(因为我的Nuget版本忽略了转换时configSource节点中的节元素)。我不知道我是否传达了核心应用程序是web。我希望web应用程序(core)能够运行如果明天早上我进入办公室时你还没有得到任何答案,我会仔细看看我们是如何做的,但这是可能的,因为我们正是这样做的——创建一个核心框架作为nuget包,并在多个应用程序中使用它。我很感激。我将在稍后查看WebActivator。我目前正在尝试各种破解方法,看看如何使用后构建任务来替换DLL——比如将扔掉的主机应用程序命名为与我的核心web应用程序相同的程序集,然后替换它。尝试一下。但我将首先看看PASM()是否可以简单地调用核心应用程序的web start。我希望我可以使空主机web的MVCAP应用程序成为一个空壳,通过核心web应用程序的MVCAP应用程序路由所有内容。您如何注册路由并将BeginRequests的处理从空主机传递到核心应用程序?你能发布你的Global.asax.cs吗?或者,一个合理的传真?