我的情况很奇怪,无法发布最终的Web项目。这是项目结构:
Foo.Services.Common
:这是共享库:.NET Standard 2.0.3
,Microsoft.AspNetCore.Mvc.Core 2.1.0
,定义了类DefaultWebSettings
。
Foo.Services.Common.Razor
:Razor类库,已引用回到Foo.Services.Common
,并使用DefaultWebSettings
:NETStandard.Library 2.0.3
,Microsoft.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.0
,Microsoft.NETCore.App 2.1.0
。
Foo.Services.Web
:前端项目。这是我无法发布的那个!这个引用了两个Common
项目。用途:Microsoft.AspNetCore.App 2.1.0
,Microsoft.NETCore.App 2.1.0
但是,此消息在发布时显示:
找不到类型或名称空间名称'DefaultWebSettings' (您是否缺少using指令或程序集引用?)
错误位置在Foo.Services.Common.Razor
项目的文件中,而不是Web
项目的文件中。
有趣的是,即使使用IntelliSense和“转到定义”,Visual Studio也可以完美地工作:
我可以在Debug / Release模式下进行构建,在有/无调试情况下都可以运行解决方案中的任何项目。而且,发布Foo.Services.Common.Razor
可以毫无问题!
简而言之:我无法发布我的Web
项目,也不知道是什么问题。我尝试过:
请告诉我我可能会想念的东西。
答案 0 :(得分:0)
最后,我不得不从Common
和Common.Razor
项目中删除Web
的引用。我猜他们由于.NET Standard和.NET Core之间的某些冲突而无法构建。必须将Common
的所有代码复制到Common.Razor
中。