Asp.net mvc 保留对包含MVC3控制器的DLL项目的工具支持

Asp.net mvc 保留对包含MVC3控制器的DLL项目的工具支持,asp.net-mvc,visual-studio-2010,asp.net-mvc-3,Asp.net Mvc,Visual Studio 2010,Asp.net Mvc 3,我想将我的控制器从我的主应用程序拆分为一个专用的DLL,用于我的MVC3应用程序。但在这样做之后,我失去了所有MVC3工具支持。经过深入研究,我发现如果您希望在非Web应用程序项目中保留对MVC3的工具支持,只需将适当的信息添加到项目文件中。或者先右键单击项目,然后单击“卸载项目”,从VS卸载项目或者在visual studio之外的任何纯文本编辑器中编辑它。如果使用VS,卸载项目后,再次右键单击项目文件并选择编辑它 在该文件中,您应该看到第一个PropertyGroup中名为的元素。在该元素的

我想将我的控制器从我的主应用程序拆分为一个专用的DLL,用于我的MVC3应用程序。但在这样做之后,我失去了所有MVC3工具支持。经过深入研究,我发现如果您希望在非Web应用程序项目中保留对MVC3的工具支持,只需将适当的信息添加到项目文件中。

或者先右键单击项目,然后单击“卸载项目”,从VS卸载项目或者在visual studio之外的任何纯文本编辑器中编辑它。如果使用VS,卸载项目后,再次右键单击项目文件并选择编辑它

在该文件中,您应该看到第一个PropertyGroup中名为
的元素。在该元素的正下方创建一个名为
的新元素。在该元素内部,输入MVC3项目类型的GUID。您还必须添加一个指示库语言的项目类型,VB或C,在我的例子中是C。未能同时添加此GUId将导致VS在尝试重新加载项目时显示错误

MVC3和MVC#

{E53F8FEA-EAE0-44A6-8774-FFD645390401};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
MVC3与VB.NET

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
{E53F8FEA-EAE0-44A6-8774-FFD645390401};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}

保存更改后重新加载项目,您就可以开始了

有时我真想知道为什么人们如此关心工具支持。这一定很重要。老实说,我从来没有发现这样的支持有什么用处。但您可以尝试将以下项目GUID添加到类库.csproj中,以使VS将其视为ASp.NET MVC 3 web应用程序,并可能添加一些工具支持:

{E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

我过去也这么认为,但随着最近工具更新中添加的脚手架支持(特别是在控制器上)和对EntityFramework的支持(如果其他ORM添加了对EntityFramework的支持,可能还有其他支持),它可能在很多时候都是相同的。我使用的是nHibernate,所以这一点是没有意义的,但我可以看到抽签结果。大多数情况下,我只是使用Resharper快捷方式来添加文件,但视图和控制器的默认模板可以减少在我的示例中添加原始*.cs或*.cshtml文件后将它们添加到起点的需要。
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>