【问题标题】:Can build and run on Visual Studio but cannot Publish可以在 Visual Studio 上构建和运行,但不能发布
【发布时间】:2018-08-01 16:44:39
【问题描述】:

我遇到了一个奇怪的情况,我无法发布我的最终 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

然而,一经发布,就会出现这个:

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

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

有趣的是,Visual Studio 甚至可以与 IntelliSense 和 Go to Definition 完美配合:

我可以在调试/发布模式下构建,在有/没有调试解决方案中的任何项目的情况下运行。此外,发布Foo.Services.Common.Razor 没有任何问题!

简而言之:我无法发布我的Web 项目,也不知道问题出在哪里。我试过了:

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

请告诉我我可能遗漏了什么。

【问题讨论】:

  • 您是否检查了所有 *.json 文件是否有任何错误?这有时会导致异常行为。
  • @AperioOculus 嗯,它们对我来说似乎很好。我没有任何 .Release.json 文件。此外,Release 模式构建良好,只有发布不起作用。

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


【解决方案1】:

最后,我不得不从Common.RazorWeb 项目中删除Common 的引用。我猜他们无法构建是因为 .NET Standard 和 .NET Core 之间存在一些冲突。必须将Common 的所有代码复制到Common.Razor

【讨论】:

    猜你喜欢
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2015-08-30
    • 1970-01-01
    • 2011-12-09
    • 2018-11-16
    相关资源
    最近更新 更多