- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个相当标准和简单的 MVC4 网站。
在根目录中我们有:bin、content、scripts、views。使用项目的 DLL 的默认设置,我们称它为“web.dll”,所有必要的额外内容都放在 bin 目录中。
不知何故,ASP.NET 开发服务器和 IIS7.5 都知道在托管站点时在 bin 文件夹中查找“web.dll”,如果不存在,它们会抛出错误:“无法加载类型 'CVD。 Web.MvcApplication'”。该错误的标准解决方案是直接构建到 bin 文件夹中,这对我不起作用,因为...
出于调试目的,我希望能够将调试和发布配置分别构建到 bin/Debug 和 bin/Release 中,然后部署两个目录,然后在 IIS、web.config 或全局中更改设置。 asax,或其他任何地方来选择是否应由服务器加载和执行调试或发布版本。
我一直没能找到这是否可能,或者 .net webapps 是否有一个愚蠢的硬编码规则说所有代码都必须位于 bin 目录中。
最佳答案
好的,借助 Sen Jacob 提供的几个链接和更多研究,我发现仅使用 web.config 就可以完成这一切。
首先,我们需要提供新路径并告知程序集名称,因为我们正在远离默认值:
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="Something.Web" />
</assemblies>
</compilation>
</system.web>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin\debug" />
</assemblyBinding>
</runtime>
</configuration>
现在,出于某种原因,其他地方的人们建议指定 privatePath
相对于 bin 目录(即 privatePath="debug"
),但在我的情况下,它必须相对于应用程序根目录(即如上所述)。不确定是 .net4 中的更改还是我缺少的其他配置设置;如果有人有更好的想法,请随时编辑/评论。
在此阶段,如果服务器找到文件并成功加载程序集和类,它将开始提示所有丢失的引用文件,我必须在 <add assembly="Something.Web" />
旁边添加这些文件:
<assemblies>
<add assembly="Something.Web" />
<add assembly="System.Web.Mvc" />
<add assembly="System.Web.Optimization" />
<add assembly="System.Web.Helpers" />
<add assembly="System.Web.WebPages" />
</assemblies>
根据我收集到的信息,它会在站点启动时重新编译程序集(不确定)。
关于c# - 有没有办法更改 .net mvc bin 目录位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263002/
我是一名优秀的程序员,十分优秀!