У меня еще нет тестового примера для этого, и я все еще копаюсь. Я создал отличный скрипт для редактирования бинарных файлов perl, который аннотирует некоторые бинарные сборки, являющиеся результатом работы собственного компилятора, который мы используем. Я хочу, чтобы эта обратная аннотация была сделана на этапе пост-сборки. Когда я запускаю сценарий в PowerShell для двоичных файлов, он работает нормально. Когда я запускаю его как событие пост-сборки, он вылетает с:
1> Perl5LIB is C:/StrawberryPerl/perl/site/lib;C:/StrawberryPerl/perl/vendor/lib;C:/StrawberryPerl/perl/lib
1> Invalid type 'Q' in pack at C:/StrawberryPerl/perl/lib/Config_heavy.pl line 1354.
1> Compilation failed in require at C:/StrawberryPerl/perl/lib/Config.pm line 80.
1> BEGIN failed--compilation aborted at C:/StrawberryPerl/perl/lib/Tie/RefHash.pm line 109.
1> Compilation failed in require at C:/StrawberryPerl/perl/lib/Fatal.pm line 9.
1> BEGIN failed--compilation aborted at C:/StrawberryPerl/perl/lib/Fatal.pm line 9.
1> Compilation failed in require at C:/StrawberryPerl/perl/lib/parent.pm line 16.
1> BEGIN failed--compilation aborted at C:/StrawberryPerl/perl/lib/autodie.pm line 6.
1> Compilation failed in require at C:\APPSWARE\SuperMuxDummyDutTC\LogicDDRDLL\..\SmuxFixer.pl line 7.
До сих пор я обнаружил, что @ IN C в среде Visual Studio не настроен так же, как среда PowerShell. ... поэтому я определил PERL5LIB, и теперь он собирает и сообщает тот же @ IN C, что и в PowerShell ... но явно что-то другое отличается. (Я бы тоже добавил% 25PATH% 25, но на данный момент он содержит строки, которые мне нужно проверить).
Просто интересно, есть ли другие, использующие Perl скрипты в событиях пост-сборки и есть ли у них указатели по уходу за ними и кормлению. Мы поставляем версию Perl с нашим дистрибутивом программного обеспечения, которая отличается от Strawberry Perl, поэтому я должен покопаться и посмотреть, нет ли других вещей, указывающих на разные perls et c.
Я постараюсь обновить это, когда узнаю больше.