我有一个带有完整 Orchard 源代码的 Visual Studio 2013 解决方案。当我在 Visual Studio 中的“Orchard.Web”项目上使用“发布...”时,它会正确地将站点发布到我已配置到.PubXml
我使用的文件中的文件系统目标。
但是,如果我使用 Jenkins 构建此站点,则文件不会被复制到目标位置。我创建了一个单独的 PubXml 文件,供 Jenkins 使用。
在我的 Jenkins 工作中,我有两个感兴趣的构建步骤。第一个使用src\Orchard.sln
带有命令行参数的文件/p:Configuration=Release
。这可以正确运行,并构建整个解决方案。
紧随其后的第二个构建步骤使用src\Orchard.Web\Orchard.Web.csproj
以下命令行参数的构建文件:
- /p:DeployOnBuild=true
- /p:PublishProfile="D:\workspace\Site\trunk\src\Orchard.Web\Properties\PublishProfiles\Jenkins.pubxml"
- /p:VisualStudio 版本=12.0
- /p:配置=发布
- /p:平台=AnyCPU
- /v:最小
- /nologo
- /p:警告级别=1
有了这个,构建和部署似乎工作 - 但没有。以下是构建输出中的一些行:
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
它实际上没有将文件复制到 PUBXML 文件中定义的目标位置。
相比之下,在 Visual Studio 中,输出看起来很相似,但只转换了 4 个配置文件并包含许多“Publishing folder x”行:
(...)
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.)
(我已经在 Jenkins 服务器上安装了最新的 Windows Azure SDK for .NET。)