Closed swiato closed 4 years ago
w sprawie wydajności - zamienić exe na taska
Parsowanie do System.Version to chyba nie jest dobre rozwiązanie. Wersjonowanie pakietów nuget rządzi się trochę innymi prawami i w wersjach prerelease, a już szczególnie z użyciem gitversioning parsowanie do System.Version kończy się wyjątkami.
@bartcho, a czy masz może jakiś pomysł jak podejść do tego tematu i czym zastąpić podejście z parsowaniem do System.Version?
Ok. Dokonałem korekty wzorca, wg którego będzie parsowany numer wersji:
Na potrzeby mechanizmu weryfikacji wersji Soneta.Sdk wprowadzono dwa nowe parametry:
Oba parametry razem tworzą interwał czasowy, po przekroczeniu którego, podczas builda ponownie nastąpi wykonanie zapytania do serwera (nuget api) o aktualny numer wersji Soneta.Sdk.
Mechanizm weryfikacji wersji zadziała tylko w przypadku, gdy istnieje plik global.json z odpowiednim wpisem dla Soneta.Sdk, zawierającym jego numer wersji. To z nim, porównywany jest numer Sdk pobrany z serwera (nuget api).
Issue: #19 Analiza wykonalności - prototyp I.
W poszukiwaniu bardziej optymalnego rozwiązania, znalazłem PR do msbuild'a, który dodaje logikę, która sprawdza numer wersji SDK w pliku global.json, tzw. NuGet-based SDK resolver. Niestety brakuje mi wiedzy, żeby stwierdzić, czy jesteśmy w stanie jakoś wykorzystać to co oni napisali w naszym rozwiązaniu. Jeśli ktoś kompetentniejszy ode mnie chciałby się temu przyjrzeć, poniżej zamieszczam link:
https://github.com/microsoft/msbuild/pull/2850/files