Alternatywną metodą jest pozostawienie elementów jako typu None
. W eksploratorze rozwiązań kliknij te, które chcesz wdrożyć, i ustaw Content
właściwość True
.
Uwaga: zrobiłem to w VS2019 i rzeczy mogą się zmieniać z wersji na wersję.
Aby to zadziałało, kliknij prawym przyciskiem myszy swój projekt i wybierz „Zwolnij projekt”. Następnie kliknij prawym przyciskiem myszy rozładowany projekt i wybierz „Edytuj nazwę projektu.vcxproj”.
W edytorze przejdź do samego końca pliku i wstaw ten cel tuż przed końcowym </Project>
znacznikiem:
<Target Name="CopyContent" AfterTargets="Build">
<Copy SourceFiles="@(None)" Condition="'%(None.DeploymentContent)' == 'true'" DestinationFolder="$(OutputPath)" ContinueOnError="true" />
</Target>
Teraz kliknij prawym przyciskiem myszy rozładowany projekt i wybierz „Wczytaj ponownie projekt”. Wybierz, aby zapisać i zamknąć, jeśli zostanie wyświetlony monit.
Ustawiłem też OutputDirectory
na:
$(SolutionDir)bin\$(Configuration)\$(Platform)\
a IntermediateDirectory
do:
$(SolutionDir)obj\$(Configuration)\$(ProjectName)\$(Platform)\
na stronie Ogólne właściwości projektu. Spowoduje to umieszczenie danych wyjściowych w folderze „bin”, a pośrednie w folderze „obj” w katalogu głównym rozwiązania.
Uwaga: $(SolutionDir)
nie jest zdefiniowana podczas uruchamiania programu MSBuild z wiersza polecenia. Istnieje sztuczka, której możesz użyć, aby zdefiniować to w folderze, w którym znajduje się plik .sln, za pomocą GetDirectoryNameOfFileAbove. (pozostawione jako ćwiczenie dla czytelnika). Wygląda też na to, że w 2019 roku i tak obsługują to poprawnie w wierszu poleceń. Tak :)$(SolutionDir)
zawiera ukośnika spływu, stąd nikt po nim. Wyniki każdego z nich muszą mieć na końcu odwrotny ukośnik.
Jeśli posiadasz wersję Pro lub wyższą, nie rób tego za każdym razem, gdy musisz utworzyć projekt. To byłoby kiepskie. Zamiast tego, gdy już ustawisz projekt dokładnie tak, jak lubisz, wybierz Project -> Export Template
. Nadajesz mu nazwę, a następnym razem, gdy chcesz utworzyć taki projekt, jak ten, po prostu wybierz tę nazwę w oknie dialogowym Nowy projekt. (Myślę, że w starszej wersji tak było Files -> Export Teamplate...
.)