繁体   English   中英

发布时从另一个ASP.NET Core 2项目引用ASP.NET Core 2项目失败

[英]Referencing ASP.NET Core 2 project from another ASP.NET Core 2 project fails when publishing

为了在大型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项目的项目引用,然后再次添加
  • 确保两个项目都具有相同的平台目标

创建普通的类库不是我的理想选择,因为我想使用主Web项目中提供的元包支持。 否则,拥有大量的软件包引用将使我担心与我的主要项目保持同步会有些痛苦。

非常感谢你的帮助!

我发布引用另一个项目的.net核心Web应用程序时遇到了同样的问题。

我手动删除了bin和obj文件夹重建了项目,然后解决了该问题。

好吧,我基本上通过添加一个针对完整.NET Framework的普通类库,添加了ASP.NET Core依赖关系并使用以下代码使ASP.NET Core意识到了该程序集来解决了该问题:

var secondWebProject = typeof(SecondWebProjectController).Assembly;
services.AddMvc().AddApplicationPart(secondWebProject);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM