如果不使用标准输出目录,则无法运行MVC4项目

Bob*_*y B 14 asp.net-mvc asp.net-mvc-4

我的项目结构如下所示:

  • src
    - 类库1
    - 类库2
    - web项目
  • bin
    - debug
    - release

MVC4 Web项目的默认输出目录是.\Bin\(即在Web项目的目录中),但我将其更改为类似..\bin\debug\..\bin\release\适合我的上述项目结构.编译好,二进制文件到正确的位置.

但是,当我运行该项目时,它抱怨说Could not load type Myproject.MvcApplication,如果我不进行上述更改,那么它可以工作.

如何控制二进制文件的位置?我希望输出目录与源目录完全分离 - 它更容易部署和更安全,因为我没有在一个地方混合使用源代码和二进制文件.

Eri*_*sch 11

简短的回答,你不能.它与Visual Studio甚至.NET无关,它是IIS的限制.

原因是IIS希望bin目录直接位于网站文件夹位置下.这是一种您无法绕过的安全机制.其目的是防止受到破坏的网站直接从网站的根边界"逃离".

为什么你甚至想要这样做?

  • 我所谓的"bin"则具有不同的含义,但它确实有意义,我们将它用于大型系统 - 如果您愿意,可以将其命名为输出目录.在该目录中有一个实际的"bin"目录,其中除了DLL之外什么也没有(并且无论如何都没有在那里进行调试,只在dev机器上).我们的项目结构背后的逻辑是没有问题的,我是否可以让IIS Express从我想要的地方(而不是从VS中的项目文件夹)加载网站.我想这不可能. (4认同)