TFS не плетет сборки Fody

Я пытаюсь использовать Fody.PropertyChanged в своем проекте, поэтому я добавил [ImplementPropertyChanged] в свой класс.
Все это отлично работает локально на моей машине разработки.

Однако при декомпиляции двоичных файлов, сгенерированных TFS, я обнаружил, что они не сплетены: они все еще имеют атрибуты Fody.

FodyWeavers.xml имеет вивер:

<Weavers>
  <PropertyChanged />
</Weavers>

Куда смотреть, и на что смотреть, чтобы узнать, почему мои сборки не плетутся?

Спасибо!


person thomasb    schedule 08.01.2016    source источник
comment
Вы добавили свое окончательное решение в обновление? Предлагаю вам создать ответ. Это также упростит поиск ответов на форуме и принесет пользу другим участникам сообщества.   -  person PatrickLu-MSFT    schedule 12.01.2016
comment
Ты прав. Я надеялся, что кто-то придумает лучший ответ, но, увы...   -  person thomasb    schedule 12.01.2016


Ответы (1)


Мне удалось сплести сборки таким образом:

Я скопировал содержимое packages\Fody.xx\ в Assemblies\Fody\

Затем я изменил .csproj, чтобы он указывал на скопированный файл .targets (ближе к концу .csproj):

<Import Project="$(SolutionDir)\Assemblies\Fody\build\dotnet\Fody.targets" Condition="Exists('$(SolutionDir)\Assemblies\Fody\build\dotnet\Fody.targets')" />
    <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\Assemblies\Fody\build\dotnet\Fody.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\Assemblies\Fody\build\dotnet\Fody.targets'))" />
</Target>

Я подозреваю, что сопровождающие TFS загружают пакеты Nuget в другую папку (например, чтобы иметь только одну копию всех пакетов Nuget для всех проектов), что означает, что такой пакет не может работать обычным образом.

person thomasb    schedule 12.01.2016