C# 将ASP.NET Web Api构建到其他输出目录

C# 将ASP.NET Web Api构建到其他输出目录,c#,asp.net,iis,asp.net-web-api,C#,Asp.net,Iis,Asp.net Web Api,我有一个ASP.NET web api项目,该api与其他DLL有很多依赖关系,因此我们将所有DLL放在一个特定的文件夹中。若我将web api的输出路径指向该输出目录并在IISExpress中执行,则会出现以下错误 分析器错误消息:找不到CodeDom提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlat

我有一个ASP.NET web api项目,该api与其他DLL有很多依赖关系,因此我们将所有DLL放在一个特定的文件夹中。若我将web api的输出路径指向该输出目录并在IISExpress中执行,则会出现以下错误

分析器错误消息:找不到CodeDom提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider,Microsoft.CodeDom.Providers.DotNetCompilerPlatform,版本=2.0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35”

如果我们看到错误的文件位置,它仍然指向WebAPI\u SourceCode\u Directory\web.config,而不是我的输出文件夹。但是输出文件夹有web.config文件。如何使用IISExpress使web应用程序从输出文件夹运行由于IIS安全限制,不建议更改asp.net应用程序的输出目录

但是,您仍然可以通过适当更改配置文件来破解它,请参阅

正如本文所述,当您编译Web应用程序时,编译后的代码将放在临时ASP.NET文件文件夹中


要查找此临时ASP.NET文件文件夹,请检查我的帖子。不要使用IIS express进行开发,请使用适当的IIS。这样,您将从一开始就解决所有生产问题

无论您的API是否有很多dll依赖项,这都没有区别。API需要知道从何处获取它们,我不会更改默认行为。当您构建项目时,它们将像所有其他依赖项一样位于bin文件夹中

若要在本地环境中部署API,请将Publish方法用于本地文件夹,然后构建指向该文件夹的IIS应用程序


这就是你需要做的,为什么要把事情复杂化呢?您仍然可以在调试模式下发布,您仍然可以将VisualStudio连接到它并正确调试它。几乎不需要对抗默认的操作方式。

您是否更改了Visual Studio的输出目录,Project>Properties?是的,Clint,我已经更改了它Project->Properties->Build->output路径请尝试下面的方法,让我知道我试过探测它不起作用,只有当我的DLL位于bin的子文件夹中时,我们才能使用探测吗?探测之后,您是否也在
下添加了相关程序集?不,我没有指定。但我从Microsoft文档页面“privatePath中指定的目录必须是应用程序基础目录的子目录”中获得了此信息。Url:这是否意味着DLL不能位于子文件夹之外?@BaalaSrinivasK,是的,没错。看起来您还需要在探测步骤之后添加相关的程序集,正如您在另一个SO上看到的那样post@BaalaSrinivasK,只是跟进,如果您认为这个答案对您有所帮助,如果您可以将其标记为已解决,那就太好了,如果没有,您可以让我知道是否有什么可以改进的地方:)