Sandcastle Error BE0073 .NET Framework 4.5

本文关键字:Framework NET Error BE0073 Sandcastle | 更新日期: 2023-09-27 18:21:17

我正在尝试使用Sandcastle生成帮助文件,在本地可以找到,但在我的构建服务器上,我一直收到相同的错误消息:

SHFB: Error BE0073: A project with a different or higher framework version was 
found but that version (.NETFramework 4.5) or a suitable redirected version 
was not found 

我已经检查并安装了.NET 4.5.1和4.5,我的项目在服务器上构建时没有问题。只是沙堡造成了问题。

有人知道这个错误的原因吗?或者我如何进一步诊断它?

Sandcastle Error BE0073 .NET Framework 4.5

由于某些原因,目录:

C:'Program Files (x86)'Reference Assemblies'Microsoft'Framework'.NETFramework'v4.5

在我的生成服务器上丢失。我从本地机器上复制了它,一切都开始工作了。

我在配置VSTS时遇到了同样的问题。

SHFB:错误BE0071:找不到项目框架版本';的信息;。NET框架4.6.1';或者该系统上的合适的重定向版本。有关详细信息,请参阅错误号帮助主题。

LastBuild.log显示找不到.NETFramework文件夹。

Finding tools...
The Sandcastle tools are located in 'd:'a'1's'packages'EWSoftware.SHFB.2017.1.28.0'Tools''
The SHFBROOT system environment variable was not found.  This variable is usually created during installation and may require a reboot.  It has been defined temporarily for this process as: SHFBROOT=d:'a'1's'packages'EWSoftware.SHFB.2017.1.28.0'Tools'
Locating components in the following folder(s):
    d:'a'1's'Documentation'Project.Docs
    C:'ProgramData'EWSoftware'Sandcastle Help File Builder'Components and Plug-Ins'
    d:'a'1's'packages'EWSoftware.SHFB.2017.1.28.0'Tools'
    Last step completed in 00:00:00.0360

我最终在项目属性中设置了特定于项目的组件路径,以指向SHFB.NETFramework包,这解决了问题。

对我来说,这条消息发生在我在构建服务器上安装Sandcastle Help File Builder应用程序之后,但构建日志抱怨找不到SHFBROOT环境变量,但我在Help File Builder项目中配置了一个覆盖,构建日志说它将使用它。

   <PropertyGroup>
    <!-- NOTE: Update the version number in the path (YYYY.M.D.R) to match the package version -->
    <SHFBROOT Condition=" '$(SHFBROOT)' == '' ">$(MSBuildThisFileDirectory)'..'packages'EWSoftware.SHFB.2017.1.28.0'tools'</SHFBROOT>
   </PropertyGroup>

然而,上面的设置在构建服务器上对我没有帮助,它仍然失败(但不是本地的)。

对我的案例起作用的是重新启动我们的构建服务器。

我方面有一个相当明显的疏忽,正如我所料,这是我最初可能错过的帮助文档中的某个地方。

我在构建服务器上运行它时遇到了这个相关问题:BE0071:无法找到项目框架版本"XXXX"的信息

原因

生成引擎无法找到项目的FrameworkVersion属性中指定的版本的框架信息。曾试图将使用情况重定向到更高版本,但未找到。

解决方案

如果您选择的框架未安装在系统上,则可能会发生这种情况。例如,选择Silverlight框架的早期版本。如果找不到早期版本,构建引擎将尝试将使用重定向到框架的更高版本(如果在系统上可以找到的话)。如果找不到指定的版本或更高版本,则需要在系统上安装项目中指定的框架的选定版本或更新版本。

在"引用程序集"文件夹中搜索框架程序集(%ProgramFiles(x86)%''Reference assemblies''Microsoft''framework)。如果尚未安装与所指示的框架版本或相关目标包相关的Visual Studio版本,则引用程序集可能不存在。最简单的解决方案是下载并安装适当的目标包,或者从具有引用程序集的另一个系统复制引用程序集。

如果使用Sandcastle Help File BuilderNuGet软件包,则可能意味着您需要安装一个或多个包含必要文件的帮助文件生成器反射数据集软件包。如果存在多个版本的平台软件包,请安装最新版本,因为它将涵盖所有以前的版本。如果项目的Component Path项目属性不在帮助文件生成项目文件夹下,请确保将其设置为packages文件夹。一旦安装并设置了组件路径,您可能需要关闭并重新打开项目,以便它检测到新安装的文件。