gpt4 book ai didi

c# - 更改 WebApi 应用程序的构建输出目录

转载 作者:可可西里 更新时间:2023-11-01 08:45:30 26 4
gpt4 key购买 nike

我是开发大型应用程序的团队的一员。我是这个团队的新成员,正在构建一个新的应用程序。作为此过程的一部分,我创建了一个 WebApi 应用程序,它将公开一些 HTTP 端点,我将通过这些端点检索有关该应用程序的信息。

由于解释的时间太长,我想让 WebApi 项目在另一个目录中构建,特别是 ..\bin\Server\Debug\,因为这是应用程序的大部分其他部分构建到的位置。除了该应用程序尝试使用基于当前对我的 WebApi 应用程序错误的工作目录找到的文件外,我不会打扰。

我尝试在项目设置中更改它,但现在出现此错误: Could not load type WebApiApplication

到目前为止,我的谷歌搜索没什么帮助。有人知道如何解决这个问题吗?

最佳答案

尝试添加运行时 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 目录。查看所有选项并挖掘后发现 bin Asp.net web 项目的文件夹不是普通的二进制输出文件夹。这是一个share code folder在项目中直接引用二进制文件的位置。

The binaries are compiled when a first request is received by webserver for Asp.net application. And bin folder is only use as shared binary references folder and not the actual output folder/directory. The actual output folder of On-the-fly compilation in Asp.net is default set to %SystemRoot%\Microsoft.NET\Framework\<versionNumber>\Temporary ASP.NET Files that you can change ofcourse from compilation tag attribute [tempDirectory][3] in your web.config.

经过所有这些研究,我得出的结论是,从 project -> properties -> Build -> Bin 更改目录的选项由于 Asp.net 网站 项目 模板而出现。这为用户提供了与任何其他项目相同的外观。但 asp.net 网站的功能保持不变。 Bin文件夹仍然像以前一样工作 website Asp.net 的模板。

关于c# - 更改 WebApi 应用程序的构建输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29852630/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com