一尘不染

Web Deploy 3.0在CI服务器上不起作用

jenkins

从我的本地计算机到开发服务器,Web Deploy 3.0可以使用以下命令与Visual Studio 2012发布配置文件配合使用:

msbuild。\ myproj.csproj / verbosity:d
/p:DeployOnBuild=true;PublishProfile=Develop;VisualStudioVersion=11.0;AllowUntrustedCertificate=true;用户名=
xx;密码= xx

从CI服务器运行同一命令时(可能是Jenkins,但这应该适用于任何命令),该命令成功完成,但从未部署过任何网站。

比较日志输出时,构建服务器似乎跳过了很大一部分。它仅在下面列出的两行之后发生(在本地或CI服务器上运行时,这两行输出是相同的):

从项目“ C:_Application \ proj \ src \ proj.Web \ proj.Web.csproj”中的文件“ C:\
windows \ Microsoft.NET \ Framework \ v4.0.30319 \
Microsoft.Common.targets”中定位“ PrepareForRun”目标“ CoreBuild”取决于它):在项目“
proj.Web.csproj”中完成了构建目标“ PrepareForRun”。

在本地运行时,下面显示以下内容(以及数百行日志记录):

由于条件错误,跳过了目标“
InsertAdditionalWebCofigConnectionStrings”;($(InsertAdditionalWebCofigConnectionStrings)和’@(_
ConnectionStringsToInsert)’!=’‘)被评估为(True And’‘!=’‘)。来自项目“ C:_Application \
proj \ src \ proj.Web”的文件“ C:\ Program Files(x86)\ MSBuild \ Microsoft \
VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.targets”中的目标“
_CleanWPPIfNeedTo” \ proj.Web.csproj”(目标“
PipelineCollectFilesPhase”取决于它):任务“ ReadLinesFromFile”

在CI服务器上,该目录似乎丢失了:

C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \
Microsoft.Web.Publishing.targets

缺少目标会导致它无声地失败吗?此文件夹从何而来(缺少CI服务器上的整个Web文件夹)?


阅读 333

收藏
2020-07-25

共1个答案

一尘不染

您是否在生成服务器上安装了Visual Studio?乍一看似乎很奇怪(而且并非绝对必要),但这无疑是解决所有这些问题的最简单方法。

您可以将所需的目标文件从PC手动复制到构建服务器上,但是您将通过反复试验来使其正​​常工作。

同样,如果MS发布新的out of band更新(如Asp.Net and Web Tool 2012.2他们最近所做的那样),对于构建服务器而言,安装过程比尝试确定已更改的目标并手动复制它们要容易得多。

让我知道是否有帮助。

2020-07-25