Ошибка Sandcastle BE0073 .NET Framework 4.5

Я пытаюсь создать файлы справки с помощью 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 вызывает проблемы.

Кто-нибудь знает причину этой ошибки или как я могу диагностировать ее дальше?


person Michael Edwards    schedule 10.11.2015    source источник


Ответы (4)


Почему-то каталог:

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

Отсутствовал на моем сервере сборки. Я скопировал его с моей локальной машины, и все заработало.

person Michael Edwards    schedule 10.11.2015
comment
Спасибо за это! Мне бы потребовалась целая вечность, чтобы понять это самостоятельно. - person rushinge; 05.07.2016
comment
Хм странно. У меня есть этот каталог на моем сервере сборки, но я все еще получаю ту же ошибку. - person Vin Shahrdar; 30.05.2018
comment
Хорошо, я думаю, я понял. Я удалил проект с пакетом Nuget для платформы Sandcastle .Net. В результате сервер сборки не смог найти файлы отражения в каталоге пакетов. - person Vin Shahrdar; 30.05.2018

У меня была такая же проблема при попытке настроить 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, и это решило проблему.

person Jeff Tindall    schedule 27.04.2017

Для меня это сообщение появилось после того, как я установил приложение 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>

Однако указанный выше параметр не помог мне на сервере сборки, и он все еще не работал (но не локально).

В моем случае сработала перезагрузка нашего сервера сборки.

Довольно очевидная оплошность с моей стороны, так как я ожидаю, что это где-то в справочной документации, которую я мог изначально пропустить.

person jadusty    schedule 08.02.2017

У меня была проблема с запуском на сервере сборки: BE0071: Не удалось найти информацию для версии платформы проекта "XXXX"

Причина

Механизм сборки не смог найти информацию о платформе для версии, указанной в свойстве FrameworkVersion проекта. Была предпринята попытка перенаправить использование на более позднюю версию, но ничего не найдено.

Решение

Это может произойти, если вы выбрали фреймворк, который не установлен в системе. Например, выбрав более раннюю версию платформы Silverlight. Если более ранняя версия не будет найдена, механизм сборки попытается перенаправить использование на более позднюю версию платформы, если она может быть найдена в системе. Если указанную версию или более позднюю версию найти не удается, потребуется установить в системе выбранную или более позднюю версию фреймворка, указанного в проекте.

Сборки платформы ищутся в папке эталонных сборок (%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework). Если вы не установили версию Visual Studio, относящуюся к указанной версии фреймворка или соответствующему целевому пакету, эталонные сборки могут там не существовать. Самое простое решение — загрузить и установить соответствующий пакет настройки или скопировать ссылку сборки из другой системы, в которой они есть.

Если используется пакет NuGet построителя файлов справки Sandcastle, это может означать, что вам необходимо установить один или несколько пакетов Reflection Data Set построителя файлов справки, которые содержат необходимые файлы. Если существует несколько версий пакета платформы, установите последнюю версию, так как она будет охватывать все предыдущие версии. Обязательно задайте для свойства проекта Component Path папку пакетов, если она не находится в папке проекта сборки файла справки. После установки и указания пути к компоненту вам может потребоваться закрыть и снова открыть проект, чтобы он обнаружил вновь установленные файлы.

person ofthelit    schedule 06.03.2017