В моем решении многие проекты используют Fody для внедрения ткача PropertyChanged. К сожалению, в конце сборки, когда Fody начинает писать финальную сборку, процесс зависает и не может быть восстановлен.
Это команда MSBuild, которую я выполняю:
set msbuildemitsolution=1
msbuild MyCompany.App.sln /t:Build /fl /flp:logfile=buildoutput.txt;verbosity=diagnostic /p:Configuration=Debug /p:Platform="Any CPU" /p:UseSharedCompilation=false
Это лог сборки:
AfterCompile:
Beginning transformation.
Transformation succeeded
FodyTarget:
Fody: Fody (version 3.0.3.0) Executing
Fody: ProjectDirectory: 'C:\Dev\Client\MyCompany.App.Client.Shell\'.
Fody: AssemblyPath: 'C:\Dev\Client\MyCompany.App.Client.Shell\obj\Debug\MyCompany.App.Client.Shell.exe'
Fody: Found path to weavers file 'C:\Dev\Client\MyCompany.App.Client.Shell\FodyWeavers.xml'.
Fody: SolutionDirectory path is 'C:\Dev\'
Fody: Finding weavers
Fody: FindAddinDirectories:
Fody: No PackageDefinitions
Fody: Scanning SolutionDir/Packages convention: C:\Dev\packages'.
Fody: Fody weaver file added 'C:\Dev\packages\PropertyChanged.Fody.2.5.4\netclassicweaver\PropertyChanged.Fody.dll'
Fody: Skipped directory from Nuget Config since it could not be derived.
Fody: Scanning the MsBuildThisFileDirectory parent: C:\Dev\'.
Fody: Skipped scanning 'C:\Dev\Tools' since it doesn't exist.
Fody: Skipped NuGetPackageRoot since it is not defined.
Fody: No Weaver project file found.
Fody: Finished finding weavers 25ms
Fody: Creating a new AssemblyLoadContext
Fody: Reference count=209
Fody: References: *follows long list of references...*
Fody: Found debug symbols at 'C:\Dev\Client\MyCompany.App.Client.Shell\obj\Debug\MyCompany.App.Client.Shell.pdb'.
Fody: Weaver 'C:\Dev\packages\PropertyChanged.Fody.2.5.4\netclassicweaver\PropertyChanged.Fody.dll'.
Fody: Initializing weaver
Fody: Loading 'C:\Dev\packages\PropertyChanged.Fody.2.5.4\netclassicweaver\PropertyChanged.Fody.dll' from disk.
Fody: Can't find 'FSharp.Core, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
Fody: Can't find 'System.Diagnostics.Tracing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Fody: Can't find 'System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Fody: Can't find 'System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Fody: Can't find 'System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Fody: Can't find 'System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Fody/PropertyChanged: Executing Weaver
Fody/PropertyChanged: MyCompany.App.Client.Shell.ViewModels.SplashScreenViewModel
Fody/PropertyChanged: Model
Fody/PropertyChanged: Model skipped since call already exists
Fody/PropertyChanged: MyCompany.App.Client.Shell.Model.ShellWindowModel
Fody/PropertyChanged: ProgramProvider
Fody/PropertyChanged: ProgramProvider
Fody/PropertyChanged: UiEnabledContext
Fody/PropertyChanged: UiEnabledContext
Fody/PropertyChanged: SizingContext
Fody/PropertyChanged: SizingContext
Fody/PropertyChanged: ProgramHeaderRegionVisibility
Fody/PropertyChanged: ProgramHeaderRegionVisibility
Fody/PropertyChanged: EnvironmentVersion
Fody/PropertyChanged: EnvironmentVersion
Fody/PropertyChanged: EnvironmentVersionFontFamily
Fody/PropertyChanged: EnvironmentVersionFontFamily
Fody/PropertyChanged: EnvironmentVersionFontColor
Fody/PropertyChanged: EnvironmentVersionFontColor
Fody/PropertyChanged: EnvironmentVersionFontSize
Fody/PropertyChanged: EnvironmentVersionFontSize
Fody/PropertyChanged: Title
Fody/PropertyChanged: Title
Fody/PropertyChanged: RibbonSelectedIndex
Fody/PropertyChanged: RibbonSelectedIndex
Fody/PropertyChanged: IsBusy
Fody/PropertyChanged: IsBusy
Fody/PropertyChanged: IsTaskButtonsBusy
Fody/PropertyChanged: IsTaskButtonsBusy
Fody/PropertyChanged: ShellContext
Fody/PropertyChanged: ShellContext
Fody/PropertyChanged: ConsoleEditingContext
Fody/PropertyChanged: ConsoleEditingContext
Fody/PropertyChanged: Icon
Fody/PropertyChanged: Icon
Fody/PropertyChanged: IsOptionNavigationEnabled
Fody/PropertyChanged: IsOptionNavigationEnabled
Fody/PropertyChanged: MyCompany.App.Client.Shell.Model.SplashScreenModel
Fody/PropertyChanged: LoadingMessages
Fody/PropertyChanged: LoadingMessages
Fody/PropertyChanged: SelectedMessageIndex
Fody/PropertyChanged: SelectedMessageIndex
Fody/PropertyChanged: NameVersion
Fody/PropertyChanged: NameVersion
Fody/PropertyChanged: Environment
Fody/PropertyChanged: Environment
Fody/PropertyChanged: EnvironmentColor
Fody/PropertyChanged: EnvironmentColor
Fody/PropertyChanged: MyCompany.App.Client.Shell.ViewModels.ShellWindowViewModel
Fody/PropertyChanged: Model
Fody/PropertyChanged: Model
Fody/PropertyChanged: MyCompany.App.Client.Shell.Model.ShellContext
Fody/PropertyChanged: IsInConsoleMode
Fody/PropertyChanged: IsInConsoleMode
Fody/PropertyChanged: Finished 'PropertyChanged' in 162ms
Fody/PropertyChanged: Removing reference to 'PropertyChanged'.
Fody: Adding weaving info
Fody: Finished in 5ms
Fody: Writing assembly to 'C:\Dev\Client\MyCompany.App.Client.Shell\obj\Debug\MyCompany.App.Client.Shell.exe'.
В этом состоянии он зависнет навсегда, если я попытаюсь отменить сборку с помощью CTRL-C, я получу это сообщение:
Attempting to cancel the build...
warning MSB4220: Waiting for the currently executing task "Fody.WeavingTask" to cancel.
Процесс будет безуспешно пытаться отменить сборку каждые 10 секунд или около того. Задача MSBuild становится неубиваемой, и мне нужно перезагрузить машину, чтобы попытаться запустить другую сборку!
В проекте используется следующее:
- Фоди.3.0.3
- PropertyChanged.Fody.2.4.0
Я использую версию msbuild 16.4.0.56107.
Пробовал обновить до последней версии Fody, не помогло.
Я знаю, что это может быть долгий путь; если у кого-то есть какие-либо советы/идеи о том, как исследовать это, поделитесь ими. Спасибо.
-- РЕДАКТИРОВАТЬ -- Если я удалю PropertyChanged и Fody из неудачного проекта, решение сможет завершить сборку. Что может заставить Фоди повеситься?
C:\Program
илиc:\Progra~1
- person ab_732   schedule 21.04.2020