沙堡错误 BE0073 .NET Framework 4.5

3

我正在尝试使用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时出现了问题。

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

4个回答

2
我遇到了同样的问题,尝试配置VSTS。

SHFB:错误BE0071:无法在此系统上找到项目框架版本“ .NET Framework 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 .NET Framework包,问题得以解决。

2

由于某些原因,目录:

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

在我的构建服务器上缺失了这个文件。我从本地机器复制了它,然后一切都开始正常工作了。


谢谢!要是我自己想出来可能需要很久。 - NightWatchman
嗯,奇怪。我在构建服务器上确实有那个目录,但我仍然遇到了同样的错误。 - Vin Shahrdar
好的,我想我明白了。我已经删除了一个包含Sandcastle .Net框架Nuget包的项目。结果,构建服务器无法在包目录中找到反射文件。 - Vin Shahrdar

0

我在构建服务器上运行时遇到了相关问题:

BE0071: 无法找到项目框架版本“XXXX”的信息

原因

构建引擎无法定位项目的FrameworkVersion属性指定的版本的框架信息。尝试将使用重定向到较新版本,但未找到任何版本。

解决方案

如果选择了系统未安装的框架,就会出现这种情况。例如,选择早期版本的Silverlight框架。如果未找到早期版本,则构建引擎将尝试将使用重定向到系统中找到的较新版本的框架。如果无法找到指定版本或更高版本,则需要在系统上安装项目中指定的所选或更高版本的框架。

框架程序集在引用程序集文件夹中搜索(%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework)。如果您没有安装与指定框架版本相关的Visual Studio版本或相关的定位包,则引用程序集可能不存在于那里。最简单的解决方案是下载并安装适当的定位包,或从具有这些程序集的另一个系统复制引用程序集。

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


0
对我来说,这个消息是在我在我们的构建服务器上安装了Sandcastle帮助文件生成器应用程序之后发生的,但是构建日志抱怨找不到SHFBROOT环境变量,但是我已经在帮助文件生成器项目中配置了一个覆盖,构建日志说它将使用该覆盖。
   <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>

上述设置在编译服务器上对我没有帮助,仍然失败(但本地不会)。对我的情况有效的是重启编译服务器。这是我犯的一个非常明显的疏忽,因为我相信这可能最初在帮助文档中有提到过,但我可能错过了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接