Wpis z mikrobloga

Czy wiesz, że?

W .csproj możesz ustawić opcję UseArtifactsOutput.

<PropertyGroup>
<UseArtifactsOutput>true</UseArtifactsOutput>
</PropertyGroup>

Spowoduje ona to, że podczas kompilacji i publikacji, zamiast tworzyć oddzielnie foldery /bin, /obj, /publish w tej samej lokacji co .csproj - dla każdego projektu oddzielnie, utworzone one zostaną w folderze 'artifacts'. Co więcej, 'artifacts' znajduje się w tej samej lokacji co .sln, więc wszystkie projekty mogą produkować artefakty do tego samego folderu.

Więcej info -> docsy

#programowanie #csharp #dotnet
Hektorrr - Czy wiesz, że?

W .csproj możesz ustawić opcję UseArtifactsOutput.
``
<Pro...

źródło: artifact-output

Pobierz
  • 6
  • Odpowiedz
@Hektorrr no i co to za różnica? W czym jest lepsza jedna albo druga opcja. Jedyne co mi przychodzi do głowy to np łatwiej pod montować jeden katalog jak chcesz żeby te pliki zapisały się na innym dysku
  • Odpowiedz
  • 0
W czym jest lepsza jedna albo druga opcja.


@zibizz1: To już Ty musisz zdecydować, czy którakolwiek z nich jest lepsza dla Ciebie. To są dwie alternatywne opcje.
UseArtifactsOutput zostało wprowadzone bo zespół dotnetu stwierdził, że jest bałagan w folderze z projektami i jest mniej wygodniej nawigować między artefaktami produkowanymi przez solucje składające się z wielu projektów.
Natomiast wcale nie musisz jej używać jak nie chcesz. Domyślne zachowanie się nie zmieni ze
  • Odpowiedz
@zibizz1: może być korzystne gdy masz parę różnych executable które jednak logicznie są ze sobą powiązane i razem releasowane czy zbierane w jakaś paczkę. Oczywiście możesz to opędzić jakimś cicd ale tak to od razu na poziomie lokalnego budowania juz masz informacje np że dwa executable korzystają z różnej wersji bibliotek i jakaś wersja została nadpisana inną i nie chodzi a powinno byc spójnie. Dodatkowo łatwiej też chyba wtedy ogarnąć Delta
  • Odpowiedz
@LeopoldStuff: w C# nigdy nie widziałem takich pakietów że parę różnych executable jest trzymanych razem, ale wolałbym zrobić jeden projekt zbiorczy, dodać je jako zależności i zajdzie wtedy walidacja zależności i ich wersji. Co to są Delta buidy? Chodzi o to że budując rozwiązanie on nie rusza projektów które się nie zmieniły? No to chyba własnie jeśli jeden projekt jest w kilku rozwiązaniach to jeśli coś się zmieni w przypadku UseArtifactsOutput
zibizz1 - @LeopoldStuff: w C# nigdy nie widziałem takich pakietów że parę różnych exe...

źródło: props

Pobierz
  • Odpowiedz
@zibizz1: trochę popłynąłem bo jednak ten nowy feature tworzy oddzielne foldery pod projekty tyle, że w jednym centralnym miejscu.
📁 artifacts
📂 <Type of output>
📂 <Project name>
📂 <Pivot>

Jak faktycznie chcesz mieć wszystko wrzucane do jednego folderu outputowego to właśnie używa się Directory.Build.Props i myślałem że ten feature nieco upraszcza właśnie definiowaniego tego w build propsach.
Może podam inne użycie
  • Odpowiedz