Mam rozwiązanie Visual Studio 2013 z pełnym kodem źródłowym Orchard. Kiedy używam "Opublikuj ..." w projekcie "Orchard.Web" w Visual Studio, poprawnie publikuje on witrynę docelową System plików skonfigurowałem w pliku .PubXml
, którego użyłem.MSBuild nie kopiuje plików z PublishProfile
Jeśli jednak zbuduję tę stronę za pomocą Jenkins, pliki nie zostaną skopiowane do miejsca docelowego. Stworzyłem osobny plik PubXml, który jest używany przez Jenkinsa.
W moim zadaniu Jenkinsa mam dwa interesujące kroki konstrukcyjne. Pierwszy używa pliku src\Orchard.sln
z argumentem wiersza poleceń /p:Configuration=Release
. Działa to poprawnie i tworzy całe rozwiązanie.
Drugi etap budowy, bezpośrednio po wykorzystuje plik kompilacji src\Orchard.Web\Orchard.Web.csproj
i te argumenty wiersza poleceń:
- /p: DeployOnBuild = true
- /p: PublishProfile = "D: \ workspace \ Site \ trunk \ src \ Orchard.Web \ Properties \ PublishProfiles \ Jenkins.pubxml”
- /p:VisualStudioVersion=12.0
- /p: Konfiguracja = Zwolnij
- /p: Platforma = AnyCPU
- /v: minimal
- /nologo
- /p: WarningLevel = 1
Z tym, budować i wdrażać wydaje do pracy - ale nie. Oto niektóre wiersze z pliku wyjściowego:
Copying all files to temporary location below for package/publish:
obj\Release\Package\PackageTmp.
Auto ConnectionString Transformed obj\Release\Package\PackageTmp\Shapes\Scripts\Web.config into obj\Release\CSAutoParameterize\transformed\Shapes\Scripts\Web.config.
(... about 200 more "Auto ConnectionString..." lines...)
Finished: SUCCESS
Nie gdzie faktycznie kopiuje pliki do miejsca docelowego zdefiniowanego w pliku PUBXML.
Natomiast w Visual Studio, wyjście wygląda podobnie, ale przekształca tylko 4 pliki konfiguracyjne i zawiera wiele „wydawnictwa folderu x” linie:
(...)
Transformed Modules\SH.GoogleAnalytics\web.config using ....
Copying all files to temporary location below for package/publish:
obj\Release\Package\PackageTmp.
Publishing folder /...
Publishing folder bin...
(etc.)
(Mam zainstalowany najnowszy Windows Azure SDK .NET na serwerze Jenkins.)