Asp.net mvc 发布时找不到包的编译库位置-.Net Core 2.0-Visual Studio 2017 15.8.5

Asp.net mvc 发布时找不到包的编译库位置-.Net Core 2.0-Visual Studio 2017 15.8.5,asp.net-mvc,visual-studio,asp.net-core,Asp.net Mvc,Visual Studio,Asp.net Core,我有一个.NETCore2.0项目,它引用了一个项目,而这个项目又有一个程序集引用。在我将Visual Studio 2017升级到15.8.5版之前,一切都很正常 升级后,当我尝试在VS中运行该项目时,出现错误“找不到包的编译库位置”。这是令人惊讶的,因为我以前没有得到它,但我以前见过这个问题,并且通过使用.Net Core 2.0进行程序集引用所需的一次黑客攻击解决了它,特别是替换默认的MetadataReferenceFeatureProvider(有关详细信息,请参阅)。一旦我这样做了,

我有一个.NETCore2.0项目,它引用了一个项目,而这个项目又有一个程序集引用。在我将Visual Studio 2017升级到15.8.5版之前,一切都很正常

升级后,当我尝试在VS中运行该项目时,出现错误“找不到包的编译库位置”。这是令人惊讶的,因为我以前没有得到它,但我以前见过这个问题,并且通过使用.Net Core 2.0进行程序集引用所需的一次黑客攻击解决了它,特别是替换默认的MetadataReferenceFeatureProvider(有关详细信息,请参阅)。一旦我这样做了,这个项目就在VisualStudio中构建并运行良好

然而,当我试图发布这个项目时,我又犯了同样的错误。目前,我无法发布

有人知道我能做什么吗?(项目需要一个已编译的MVC视图,因此我不能使用false禁用编译。)

我越来越绝望了,正在考虑重新使用Visual Studio的早期版本(如果可能的话!)。这是如此令人沮丧,微软敦促你更新VS,然后更新打破了以往的工作

以下是stacktrace:

找不到包“ShiftSchedulerSPA.Reference”的编译库位置 在Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePath(ICompilationAssemblyResolver解析器,列表
1程序集)中
在Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths()中
在Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.c.b_uu8_0(编译库)上
在System.Linq.Enumerable.SelectManySingleSelectorIterator中
2.MoveNext() 位于Microsoft.AspNetCore.Mvc.Razor.Compilation.MetadataReferenceFeatureProvider.PopulateFeature(IEnumerable
1部分,MetadataReferenceFeature功能)
在Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature[TFeature](tFeatureFeature功能)中
在Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorReferenceManager.GetCompilationReferences()中
在System.Threading.LazyInitializer.EnsureInitializedCore[T](T&target,Boolean&initialized,Object&syncLock,Func
1 valueFactory) 在Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorReferenceManager.get_CompliationReferences()上 在Microsoft.AspNetCore.Mvc.Razor.Internal.lazymetadateReferenceFeature.get_References()中 在Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature.GetDescriptors()上 位于Microsoft.AspNetCore.Razor.Language.DefaultRazorTagHelperBinderPhase.ExecuteCore(RazorCodeDocument代码文档) 位于Microsoft.AspNetCore.Razor.Language.razorenginegenevasebase.Execute(RazorCodeDocument codeDocument) 位于Microsoft.AspNetCore.Razor.Language.DefaultRazorEngine.Process(RazorCodeDocument文档) 位于Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(RazorCodeDocument代码文档) 位于Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(RazorProjectItem projectItem) 位于Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(字符串路径) 在Microsoft.AspNetCore.Mvc.Razor.viewcomployment.Internal.PrecompileRunCommand.c__显示类23_0.b_u0(Int32 i) 在System.Threading.Tasks.Parallel.c___显示器上显示Class19_0`1.b__1(RangeWorker和currentWorker、Int32 timeout、Boolean和ReplicationLegateFieldBefore Completion)


这个解决方案实际上是在上面引用的github文章中找到的。我不知道为什么在VS 2017升级后它会崩溃,但解决发布问题的方法是编辑.csproj文件,将Microsoft.AspNetCore.All从2.0.0版更改为2.0.3版:

  <ItemGroup>
    <PackageReference Include="IdentityModel" Version="2.16.1" />
    <PackageReference Include="IdentityServer4" Version="2.0.6" />
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.3" />
    <PackageReference Include="Serilog.Extensions.Logging.File" Version="1.1.0" />
  </ItemGroup>