当前位置: 首页 > 面试题库 >

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

皇甫乐
2023-03-14
问题内容

从我的本地计算机到开发服务器,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文件夹)?


问题答案:

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

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

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

让我知道是否有帮助。



 类似资料:
  • 我正在另一台计算机上安装Wamp服务器,以运行一个中型数据库和用户界面。我已经成功拦截了IIS,并将服务器路由到Localhost:8080。但是每当我试图从本地主机主页访问我的项目时,在www文件中;我被重定向到一个页面没有找到错误。 当我将鼠标悬停在链接上方时,目录总是出现“http:// ProjectFolderNameHere /”。当它应该是“http:// LocalHost:808

  • 我在我的Laravel项目中有这个ajax请求(这是一个简单的版本,但它正在工作): 当我在本地工作,我使用PHP工匠服务ajax调用工作,但当我部署到我的正式服没有(因为路径 /admin/lessons/addMember/licenseMemberId不是服务器中的完整路径)。最好的方法应该是走这条路线,但我不知道怎么走。这是路由表: 有没有办法在参数设置中使用laravel路线?如果没有,

  • 应用服务器:IBM Websphere Java 6 问题: 以下是web应用程序的文件夹结构: WEB-INF/库/道具/ 问题是下面的代码不工作: this.getClass(). getResourceAsStream('/props'/fileName),其中fileName是WEB-INF/lib/pros的props文件夹中的有效文件名。 调用上述方法的类位于JAR中,并包含在lib中

  • 问题内容: 我有这个Docker Compose配置,我只需创建一个NodeJS容器并在其中安装Angular CLI。 之后,我可以使用SSH在容器内进行SSH 。可以正常工作,但似乎不起作用。它已正确启动,控制台中没有错误。但是,如果我访问(我将端口4200映射到80),则不会加载任何内容。 我想念什么吗? 问题答案: 在您的Dockerfile中,您缺少Expose行,例如: 尝试将其放在d

  • 我试图在Linux Red Hat Entreprise Linux release 5.11(Tikanga)服务器上安装GlassFish4.0。 因此,我按照以下网站说明成功地在该服务器上安装了Java JDK1.7.0_79和NetBeans4.0:https://blog.idrsolutions.com/2014/02/tutorial-setting-up-glassfish-on-

  • 问题内容: 这有效,返回结果集: 当我尝试将结果集插入表中时: 无法给出此错误: 问题答案: 由于链接服务器“ svrA”的OLE DB提供程序“ SQLNCLI10”无法开始分布式事务,因此无法执行该操作。 消息很清楚也很明确。您所要做的只是打开系统文档,然后按照配置分布式事务的步骤进行操作:配置MS DTC服务 。