为了在大型Web应用程序中拆分单独子项目的控制器,我创建了另一个ASP.NET Core 2 Web项目,并从我的主Web项目中引用它。 这些项目使用在完整的.NET Framework 4.7.1上运行的ASP.NET Core。
在第二个项目中,我为服务注册添加了额外的控制器和扩展方法。
我只需要将第二个Web项目的输出类型更改为类库,并且在开发过程中一切正常。
但是,当我尝试将Web应用程序发布到azure时,我收到此错误:
Metadata file 'E:\Dev\MyProject\MyProject.SecondWebProject\bin\Release\net471\win7-x86\MyProject.SecondWebProject.dll' could not be found
消息框指出日志文件中提供了其他信息。 此日志文件中的内容为:
System.AggregateException: One or more errors occurred. ---> System.Exception: Publish failed due to build errors. Check the error list for more details.
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at Microsoft.VisualStudio.Web.Publish.PublishService.VsWebProjectPublish.<>c__DisplayClass40_0.<PublishAsync>b__2()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.VisualStudio.ApplicationCapabilities.Publish.ViewModel.ProfileSelectorViewModel.<RunPublishTaskAsync>d__88.MoveNext()
---> (Inner Exception #0) System.Exception: Publish failed due to build errors. Check the error list for more details.<---
我的第二个web项目的输出不会被复制到\ win7-x86文件夹,但它可以在\ Debug和\ Release文件夹中找到,其中输出在本地构建期间发出。
我正在使用Visual Studio 2017(更新15.6.3)并尝试以下操作:
创建一个普通的类库不是我的有利选择,因为我想使用我的主要Web项目中的元包支持。否则,如果有大量的软件包参考,那么我担心与我的主要项目保持同步会有点痛苦。
非常感谢你的帮助!
答案 0 :(得分:0)
当我发布引用另一个项目的.net核心网络应用程序时,我遇到了同样的问题。
我手动删除了bin和obj文件夹并重建项目并解决了这个问题。
答案 1 :(得分:0)
我基本上通过添加一个针对完整.NET Framework的普通类库来解决它,添加了ASP.NET Core Dependencys并使用以下代码使ASP.NET Core了解程序集:
var secondWebProject = typeof(SecondWebProjectController).Assembly;
services.AddMvc().AddApplicationPart(secondWebProject);