Piszę zadanie MSBuild, który dodaje generowanie kodu do standardowego projektu C# (.csproj). Zadanie musi uzyskać dostęp do typów w zestawach, do których odwołuje się ten projekt.MSBuild get reference reference from ProjectReference
To proste o referencje montażowych (uzyskać wszystkie przedmioty w <Reference>), ale coraz trudniej o referencje do innych projektów (<ProjectReference>)
Czy MSBuild zapewnić sposób pobierania skompilowany odwołania do zestawu z a <ProjectReference>?
Jeśli nie, czy istnieje prosty sposób na rozwiązanie tej nazwy, czytając plik .csproj?
Plik .csproj nie dostarcza bezpośrednio skompilowanej ścieżki złożenia, musi zostać zrekonstruowany z innych właściwości. Ponadto niektóre właściwości są warunkowe (w zależności od konfiguracji debugowania/wydawania), więc użycie prostego czytnika XPath nie zadziałałoby:
Nazwa pliku DLL jest dostępna od <AssemblyName>, ale ścieżka do pliku DLL opisana jest w
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>;bin\Release</OutputPath>
<PropertyGroup>
Czy istnieje sposób programowo odczytać pliku .csproj i rozwiązać poprawną wartość OutputPath oceniając wszystkie warunki?
muszę rozwiązanie, w którym przywoływane .csproj pliki pozostają Plain Old pliki projektu (bez modyfikacji plików csproj które dodają niezbędne informacje w bardziej przystępny sposób)