可以在Visual Studio上构建和运行,但不能发布

时间:2018-08-01 16:44:39

标签: asp.net-core build .net-core publish release

我的情况很奇怪,无法发布最终的Web项目。这是项目结构:

Foo.Services.Common:这是共享库:.NET Standard 2.0.3Microsoft.AspNetCore.Mvc.Core 2.1.0,定义了类DefaultWebSettings

Foo.Services.Common.Razor:Razor类库,已引用回到Foo.Services.Common,并使用DefaultWebSettingsNETStandard.Library 2.0.3Microsoft.AspNetCore.Mvc 2.1.0和其他一些与ASP.NET Core相关的程序包(静态文件,配置)

Foo.Services.Api:仅ASP.NET Core API(无View,无Razor)具有对Foo.Services.Common的引用。发布得好。用途:Microsoft.AspNetCore.App 2.1.0Microsoft.NETCore.App 2.1.0

Foo.Services.Web:前端项目。这是我无法发布的那个!这个引用了两个Common项目。用途:Microsoft.AspNetCore.App 2.1.0Microsoft.NETCore.App 2.1.0

但是,此消息在发布时显示:

enter image description here

  

找不到类型或名称空间名称'DefaultWebSettings'   (您是否缺少using指令或程序集引用?)

错误位置在Foo.Services.Common.Razor项目的文件中,而不是Web项目的文件中。

有趣的是,即使使用IntelliSense和“转到定义”,Visual Studio也可以完美地工作:

enter image description here

我可以在Debug / Release模式下进行构建,在有/无调试情况下都可以运行解决方案中的任何项目。而且,发布Foo.Services.Common.Razor可以毫无问题!

简而言之:我无法发布我的Web项目,也不知道是什么问题。我尝试过:

  • 清洁/构建。
  • 删除/重新添加引用。
  • 手动删除所有obj和bin文件夹。

请告诉我我可能会想念的东西。

1 个答案:

答案 0 :(得分:0)

最后,我不得不从CommonCommon.Razor项目中删除Web的引用。我猜他们由于.NET Standard和.NET Core之间的某些冲突而无法构建。必须将Common的所有代码复制到Common.Razor中。