未解决的装配引用与沙堡

Unresolved assembly reference with sandcastle

我正在尝试使用 sandcastle 帮助文件生成器生成文档。在沙堡中构建项目时出现以下错误。

MRefBuilder : error : Unresolved assembly reference: Microsoft.Owin (Microsoft.Owin, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35) required by Microsoft.AspNet.Identity.Owin [C:\Users\inkosah\Documents\Help\Working\GenerateRefInfo.proj]
Last step completed in 00:01:19.4610

谁能帮我解决这个问题?我还尝试将它单独添加到沙堡中的项目引用中,但没有帮助。

解决方案 1:将缺失的引用添加到虚拟项目。

  1. 创建'dummyProject'(即class库)
  2. 在 Visual Studio - 包管理器控制台

    安装包Microsoft.Owin -版本 2.1.0.0 -ProjectName dummyProject

    安装包Microsoft.Owin.Security.OAuth -version 2.1.0.0 -ProjectName dummyProject

  3. 在 Sandcastle Help Fil Builder - Project Explore 中,添加两个引用

    Microsoft.aspNet.identity.Owin(在 ..\packages\Microsoft.AspNet.Identity.Owin.2.2.0\lib\net45 中找到的 dll)

    Microsoft.Owin(在 ..\packages\Microsoft.Owin.2.1.0\lib\net45\Microsoft.Owin.dll 中找到的 dll)

看起来 MRefBuilder 发现 Microsoft.AspNet.Identity.Owin 依赖于 Microsoft.Owin (== v 2.1.0) 而不是 Microsoft.Owin (>= 2.1.0)。

主项目还在使用Microsoft.Owin3.0.1.0

解决方案 2:忽略未解析的引用

在文档(或 SHFB)项目属性/插件中:

  1. 在"Plugs-Ins in This Project"
  2. 中添加"Assembly Binding Redirection"
  3. 将其配置为 "ignore if Unresolved" "Microsoft.Owin" 和 "Microsoft.Owin.Security.OAuth"