关于ASP.NET MVC和辅助类的单独项目的另一个问题

时间:2010-06-02 03:42:03

标签: asp.net-mvc

我知道这个话题已被讨论过死亡,但有一件事我无法解决。

我正在使用ASP.NET MVC开发一个Web应用程序,我遇到了一个我需要帮助类的场景(这通常发生在开发的早期阶段。所以我继续创建一个帮助项目在我的我用来管理所有帮助程序类的解决方案。

现在,我是否必须构建该项目并在每次更改时将dll转储到bin目录中,或者是否有办法让主Web应用程序引用单独项目中包含的类而没有单独的构建过程?

我只是在寻找最简单的方法来添加辅助类,而不需要每次进行更改或添加时都使用hastel构建和移动dll。

此外,抱歉这里有一个非常新手的问题。我过去构建的所有Web应用程序都在同一个项目中(Web表单,App_Code等)。

4 个答案:

答案 0 :(得分:3)

您可以将Helper项目和MVC项目整合到一个解决方案中。 从您的解决方案资源管理器中,只需右键单击SolutionName并选择添加现有项目。这将允许您添加现有项目作为整个解决方案的一部分。完成后,您可以使用解决方案中的其他项目添加对项目的引用。没有dll副本只需构建解决方案就可以了。

答案 1 :(得分:3)

您应该能够在Visual Studio中的单个解决方案中引用兄弟项目 - 假设您使用的是Visual Studio。尝试右键单击“引用”,然后选择“添加项目引用”。

如果您不使用Visual Studio,那么设置构建自动化工具以将新编译的DLL复制到多个目标位置是构建自动化方面最常见的操作之一。

答案 2 :(得分:2)

辅助类是什么意思?你真的不应该有太多的类不代表你的架构中的一些概念。是的,有时候有一个类(或方法)只为各种类提供某种通用功能是有意义的,但通常你希望你的类代表一些概念。如果你有很多类只能归类为“帮助者”,那就是,IMO,一种代码味道,你可能正在编写程序性的,而不是面向对象的代码。

哦,回答你的问题,只要他们在同一个解决方案中,你就应该只需添加一个项目参考。当您进行更改时,Visual Studio将负责重建您的项目并根据需要更新引用。

答案 3 :(得分:1)

您只需在与Web应用程序相同的解决方案中创建另一个项目。在Web应用程序中,右键单击“引用”,然后选择“添加引用...”

然后你会看到一个标签为Projects的标签。选择您为类创建的项目。 dll复制(如果需要)将在每个(解决方案)构建时自动发生。

也就是说,我更喜欢在网络应用程序中保留HTML帮助程序。它们依赖于MVC,我不认为类库应该依赖于事物的“web”方面。但这只是一种偏好。

(我通常将数据和模型放在一个单独的项目中。)