尝试在配置中添加运行时probing路径:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin\server\Debug;"/>
</assemblyBinding>
</runtime>
</configuration>
除了上述步骤之外,还要摆脱 globa.asax 错误。打开 Global.asax 文件的标记并在顶部添加后续行。
<%@ Assembly Name="<you_web_app_assembly_name_here>" %>
现在您将开始收到 System.web 或 BindingProvider not found 等错误。有一个奇怪的修复它开始在编译下将程序集添加到程序集标记。
<compilation debug="true" targetFramework="4.5" optimizeCompilations="false">
<assemblies>
<add assembly="Microsoft.AspNet.Identity.Core, Version=2.2.1, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</assemblies>
</compilation>
你会遇到更多这样的错误,但这会让你继续前进。
原因:我看到的问题是可以选择更改输出路径,但 Asp.net 会即时编译。当您尝试运行网站时,为什么错误与编译相关。 run time compilation 仅在 \bin 文件夹中查找,这就是为什么我们必须指定项目所引用的每个程序集。
更新 -
不幸的是,您不能更改 bin 目录。查看所有选项并挖掘后发现,Asp.net web 项目的bin 文件夹不是普通的二进制输出文件夹。这是一个share code folder,在项目中直接引用了二进制文件。
当网络服务器收到 Asp.net 应用程序的第一个请求时,将编译二进制文件。 bin 文件夹仅用作共享二进制引用文件夹,而不是实际的输出文件夹/目录。
On-the-flycompilation in Asp.net 的实际输出文件夹默认设置为%SystemRoot%\Microsoft.NET\Framework\<versionNumber>\Temporary ASP.NET Files,您可以从compilation 标签属性[tempDirectory][3] 中更改web.config。
经过所有这些研究,我得出这样的结论,即由于 Asp.net 网站 project 模板,出现了从 project -> properties -> Build -> Bin 更改目录的选项。这为用户提供了与任何其他项目相同的外观。但是 asp.net 网站的功能保持不变。 Bin 文件夹仍然像以前在 Asp.net 的旧 website 模板中一样工作。