【问题标题】:Cannot find compilation library location for package when Publishing - .Net Core 2.0 - Visual Studio 2017 15.8.5发布时找不到包的编译库位置 - .Net Core 2.0 - Visual Studio 2017 15.8.5
【发布时间】:2019-02-26 01:41:57
【问题描述】:

我有一个 .Net Core 2.0 项目,它引用了一个项目,而该项目又具有程序集引用。在我将 Visual Studio 2017 升级到 15.8.5 版之前,一切正常。

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

但是,当我尝试发布该项目时,我又遇到了同样的错误。目前,我无法发布。

有人知道我能做些什么吗? (项目需要一个编译好的MVC视图,所以不能用false来禁用编译。)

我越来越绝望,正在考虑回滚到 Visual Studio 的早期版本(如果可能的话!)。太郁闷了,微软催促你更新VS,然后更新就破坏了以前的工作方式!

这是堆栈跟踪:

找不到包“ShiftSchedulerSPA.Reference”的编译库位置 在 Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths(ICompilationAssemblyResolver 解析器,List1 assemblies) at Microsoft.Extensions.DependencyModel.CompilationLibrary.ResolveReferencePaths() at Microsoft.AspNetCore.Mvc.ApplicationParts.AssemblyPart.<>c.<GetReferencePaths>b__8_0(CompilationLibrary library) at System.Linq.Enumerable.SelectManySingleSelectorIterator2.MoveNext() 在 Microsoft.AspNetCore.Mvc.Razor.Compilation.MetadataReferenceFeatureProvider.PopulateFeature(IEnumerable1 parts, MetadataReferenceFeature feature) at Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartManager.PopulateFeature[TFeature](TFeature feature) at Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorReferenceManager.GetCompilationReferences() at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Boolean& initialized, Object& syncLock, Func1 valueFactory) 在 Microsoft.AspNetCore.Mvc.Razor.Internal.DefaultRazorReferenceManager.get_CompilationReferences() 在 Microsoft.AspNetCore.Mvc.Razor.Internal.LazyMetadataReferenceFeature.get_References() 在 Microsoft.CodeAnalysis.Razor.CompilationTagHelperFeature.GetDescriptors() 在 Microsoft.AspNetCore.Razor.Language.DefaultRazorTagHelperBinderPhase.ExecuteCore(RazorCodeDocument codeDocument) 在 Microsoft.AspNetCore.Razor.Language.RazorEnginePhaseBase.Execute(RazorCodeDocument codeDocument) 在 Microsoft.AspNetCore.Razor.Language.DefaultRazorEngine.Process(RazorCodeDocument 文档) 在 Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(RazorCodeDocument codeDocument) 在 Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(RazorProjectItem 项目项) 在 Microsoft.AspNetCore.Razor.Language.RazorTemplateEngine.GenerateCode(字符串路径) 在 Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Internal.PrecompileRunCommand.c__DisplayClass23_0.b__0(Int32 i) 在 System.Threading.Tasks.Parallel.c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean&replicationDelegateYieldedBeforeCompletion)

【问题讨论】:

    标签: asp.net-mvc visual-studio asp.net-core


    【解决方案1】:

    解决方案其实是在上面引用的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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 2018-09-13
      相关资源
      最近更新 更多