Po ponownym przeanalizowaniu twojego komentarza uświadomiłem sobie, że źle wymyśliłem to, czego naprawdę potrzebujesz. To jest interesujący problem, który masz na ręku.
Jeśli nie masz nic przeciwko edycji samego pliku projektu, być może uda Ci się uzyskać całkiem niezłe zamknij do tego, co chcesz. Istnieje element FileWrites, który śledzi wszystkie pliki zapisane podczas procesu kompilacji. Aby rozpocząć odtwarzanie z tej edytować plik projektu, aby ten AfterBuild TARGET
<Target Name="AfterBuild">
<Message Text="FileWrites: @(FileWrites)" Importance="high"/>
</Target>
Są pewne problemy z tym podejściem a także
- Musisz edytować plik projektu samego
- To będzie zawierało pliki zapisane w pośrednim katalogu wyjściowym (tj. obj) i katalog wyjściowy (tj. bin)
- Jeśli nie budować dostosowania, nie są one wymagane do napisania tej pozycji
Można by pomyśleć, że można rozwiązać pierwszy problem z techniką i wyjście MSBuild: Find Many Project References element FileWrites po wykonaniu kompilacji. To zadziała tylko wtedy, gdy opakowanie proj zostało umieszczone w tym samym folderze, co oryginalny projekt, ponieważ wszystkie elementy w pliku .csproj są zadeklarowane ze ścieżką względną.Tak więc dzieje się to w przeważającej części.
Możesz przekroczyć drugie ograniczenie, korzystając z zadania FindUnderPath, aby pobrać tylko pliki umieszczone w folderze OutputPath.
Co można zrobić, ale nie jest tak naprawdę niezawodny, albo jest zbadanie OutputPath na początku kompilacji, a następnie jeszcze raz na końcu kompilacji i zobacz, co zostało dodane. Powiedzmy, że można umieścić oryginalne pliki do StartFiles element i na koniec kompilacji umieścić wszystkie pliki w Element o nazwie EndFiles można The Do:
<Target Name="SomeTargetHere">
<ItemGroup>
<FilesWritten Include="@(EndFiles)" />
<FilesWritten Remove="@(StartFiles)"/>
</ItemGroup>
<!-- Now FilesWritten contains the difference between EndFiles & StartFiles -->
</Target>
Krótko mówiąc nie jestem pewien, czy istnieje dobre rozwiązanie, które nie wymaga ani zadanie niestandardowe lub :(zwyczaj rejestratora
Sayed Ibrahim Hashimi
my Book. Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build
Dzięki za szczegółową odpowiedź. –