MIBPostProcessDependencyGraph после сборки не удается выполнить задачу в msbuild - PullRequest
0 голосов
/ 13 января 2019

У меня есть визуальное студийное решение с 8 проектами. 6 csproj и 2 vsxproj. Мне пришлось перенести файлы proj из VS 2010 в VS2017. Поэтому я начал использовать последнюю версию msbuild для vs2017.

Столкнулся с новой ошибкой пост-сборки после этого, которая сначала говорит:

    Done executing task "CL".
Task "CL"
  Read Tracking Logs:
    T:\components\collectors\buildoutput\x64\Release\tmp\hp-scom-.10EE536C.tlog\CL.read.1.tlog
  Outputs for C:\USERS\_SDSBUILD\APPDATA\LOCAL\TEMP\.NETFRAMEWORK,VERSION=V4.0.ASSEMBLYATTRIBUTES.CPP:
    T:\COMPONENTS\COLLECTORS\BUILDOUTPUT\X64\RELEASE\TMP\.NETFRAMEWORK,VERSION=V4.0.ASSEMBLYATTRIBUTES.OBJ
  C:\Users\_sdsbuild\AppData\Local\Temp\.NETFramework,Version=v4.0.AssemblyAttributes.cpp will be compiled because it was not found in the tracking log.
  Outputs for C:\USERS\_SDSBUILD\APPDATA\LOCAL\TEMP\.NETFRAMEWORK,VERSION=V4.0.ASSEMBLYATTRIBUTES.CPP:
    T:\COMPONENTS\COLLECTORS\BUILDOUTPUT\X64\RELEASE\TMP\.NETFRAMEWORK,VERSION=V4.0.ASSEMBLYATTRIBUTES.OBJ
  Write Tracking Logs:
    T:\components\collectors\buildoutput\x64\Release\tmp\hp-scom-.10EE536C.tlog\CL.write.1.tlog

После этого возникает другая ошибка.

Using "MIBPostProcessDependencyGraph" task from assembly "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets\Microsoft.Build.CppTasks.Common.dll".
Task "MIBPostProcessDependencyGraph"
  To improve incremental build performance for managed components, please make sure that the 'VC++ Directories->Reference Directories' points to all the paths which contain the referenced managed assemblies.
  Could not load file or assembly 'general.Interop, Version=1.30.21.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
  To improve incremental build performance for managed components, please make sure that the 'VC++ Directories->Reference Directories' points to all the paths which contain the referenced managed assemblies.
  Could not load file or assembly 'Google.ProtocolBuffersLite.Serialization, Version=2.4.1.521, Culture=neutral, PublicKeyToken=55f7125234beb589' or one of its dependencies. The system cannot find the file specified.
  To improve incremental build performance for managed components, please make sure that the 'VC++ Directories->Reference Directories' points to all the paths which contain the referenced managed assemblies.
  Could not load file or assembly 'Collector2007, Version=3.10.18.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Done executing task "MIBPostProcessDependencyGraph".
Done building target "ManagedIncrementalBuildPostProcessDependencyGraph" in project

Не так много информации в интернете для этой задачи пост-сборки MIBPostProcessDependencyGraph.

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

Примечание: компиляция завершена, библиотеки созданы, но эта ошибка после сборки приводит к некоторым ошибкам. ТАК хотел это понять и решить.

Разве ManagedIncrementalBuildPostProcessDependencyGraph не может получить ссылочные библиотеки, в то время как задачи компиляции и предварительной компиляции могли их получить?

Заранее спасибо.

1 Ответ

0 голосов
/ 14 января 2019

Ошибка MIBPostProcessDependencyGraph посткомпоновки в MSbuild

При открытии файла Microsoft.Metagen.targets в папке C :\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140:

  <Target Name="ManagedIncrementalBuildPostProcessDependencyGraph"
          Condition="'@(ClCompile)' != '' and '$(EnableManagedIncrementalBuild)' == 'True'"
          DependsOnTargets="GetReferenceAssemblyPaths"
      AfterTargets="$(ManagedIncrementalBuildProcessDependencyGraphAfterTarget)"
    >
    <PropertyGroup>
      <MIBProcessDependencyGraphExcludedFolders Condition="'$(MIBProcessDependencyGraphExcludedFolders)' == ''">$(ExcludePath);$(FrameworkDir);$(VSInstallDir);$(_FullFrameworkReferenceAssemblyPaths)</MIBProcessDependencyGraphExcludedFolders>
      <MIBSearchPaths>$(ReferencePath);@(ClCompile->'%(AdditionalUsingDirectories)'->Distinct())</MIBSearchPaths>
    </PropertyGroup>

    <MIBPostProcessDependencyGraph
        Sources                            ="@(ClCompile)"
        SearchPath                         ="$(MIBSearchPaths)"
        ExcludedInputPaths                 ="$(MIBProcessDependencyGraphExcludedFolders)"
        IntDir                             ="$([System.IO.Path]::GetFullPath($(TLogLocation)))"

        ContinueOnError                    ="true"

        TLogReadFiles                      ="@(CLTLogReadFiles)"
        TLogWriteFiles                     ="@(CLTLogWriteFiles)"
      />
  </Target>

Используется для добавления пути управления dll к пути поиска в MIB. Чтобы решить эту проблему, вы можете попытаться сделать так, как сказано в сообщениях об ошибке:

Чтобы повысить производительность приращения для управляемых компонентов, пожалуйста, убедитесь, что «Каталоги VC ++-> Справочные каталоги» указывает на все пути, которые содержат управляемые ссылки сборки.

Вы можете проверить эту ветку для некоторых деталей.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...