迁移到新服务器时MSBuild Web部署问题

问题描述 投票:0回答:1

背景:

MSBuild和MSDeploy的新功能 尝试基于现有的Jenkins构建服务器构建新的Jenkins构建服务器 我正在努力解决服务器之间的已知差异 我只是想把所需要的东西带到前面(清理垃圾) 对我而言,这看起来并不像Jenkins相关的问题,因为如果我在Jenkins之外运行命令,它仍然会失败 MSBuild信息全部从git中拉下来(与live一样)所以我在这方面运行相同的东西 我意识到如果这是正确的用词,我的陈述会相当松散 希望你不要在这里停止阅读,因为虽然构建过程很大,但我会提供一些细节。 抱歉格式化。很多复制和粘贴编辑器似乎没有很好地处理。

问题:

发生的事情是在新的开发服务器上,我正在进入下一节,它失败了。

PipelineCopyAllFilesToOneFolderForMsdeploy: 发布管道部署阶段阶段PipelineCopyAllFilesToOneFolderForMsdeploy 包: 调用Web Deploy以使用以下设置生成包: $(LocalIisVersion)是8 $(DestinationIisVersion)是8 $(UseIis)为False $(IncludeIisSettings)为False $(_ DeploymentUseIis)为False $(DestinationUseIis)为False GetMSDeployInstalledVersionPath: $(_ DefaultMSDeployMaxVersion)是3 $(_ MSDeployVersionsToTry)是9.0 $(MSDeployPath)是C:\ Program Files \ IIS \ Microsoft Web Deploy V3 \ GenerateMsdeployManifestFiles: 为Web Deploy包/发布生成源清单文件... PackageUsingManifest: 打包到D:\ workspace \ 1002 \ MSDeploy。 从源启动Web部署任务: manifest(D:\ workspace \ 1002 \ MSDeploy.SourceManifest.xml)到Destination:package(D:\ workspace \ 1002 \ MSDeploy)。 C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.Web.Publishing.targets(4007,5):错误:Web部署任务失败。 (包文件'D:\ workspace \ 1002 \ MSDeploy'没有.zip文件扩展名。)[D:\ workspace \ 1002 \ Site \ Integration \ Integration.csproj] 包裹失败。 完成构建项目“D:\ workspace \ 1002 \ Site \ Integration \ Integration.csproj”(默认目标) - 失败。

以下是我们的Jenkins服务器上同一部分的相同部分。

PipelineCopyAllFilesToOneFolderForMsdeploy: 发布管道部署阶段阶段PipelineCopyAllFilesToOneFolderForMsdeploy 包: 调用Web Deploy以使用以下设置生成包: $(LocalIisVersion)是8 $(DestinationIisVersion)是8 $(UseIis)为False $(IncludeIisSettings)为False $(_ DeploymentUseIis)为False $(DestinationUseIis)为False 创建目录“D:\ workspace \ 1002 \ MSDeploy \”。 GetMSDeployInstalledVersionPath: $(_ DefaultMSDeployMaxVersion)是3 $(_ MSDeployVersionsToTry)是9.0 $(MSDeployPath)是C:\ Program Files \ IIS \ Microsoft Web Deploy V3 \ GenerateMsdeployManifestFiles: 为Web Deploy包/发布生成源清单文件... PackageUsingManifest: 打包到D:\ workspace \ 1002 \ MSDeploy \ Integration.zip。 从源启动Web部署任务: manifest(D:\ workspace \ 1002 \ MSDeploy \ Integration.SourceManifest.xml)到Destination:package(D:\ workspace \ 1002 \ MSDeploy \ Integration.zip)。添加sitemanifest(sitemanifest)。添加IIS应用程序(D:\ workspace \ 1002 \ Site \ Integration \ obj \ Release \ Package \ PackageTmp)创建应用程序(D:\ workspace \ 1002 \ Site \ Integration \ obj \ Release \ Package \ PackageTmp)

你会注意到这个有一个值,失败的值没有:

创建目录“D:\ workspace \ 1002 \ MSDeploy \”。

另外,如果我通过构建日志重新开始工作,我会注意到这一重大差异。

开发服务器

ValidateGlobalPackageSetting: $(PackageAsSingleFile)为True $(PackageFileName)是D:\ workspace \ 1002 \ MSDeploy。证实...

实时服务器(工作)

ValidateGlobalPackageSetting: $(PackageAsSingleFile)为True $(PackageFileName)是D:\ workspace \ 1002 \ MSDeploy \ Integration.zip。证实...

我希望通过这些差异以及有人可能遇到的错误并知道在哪里指出服务器之间的差异。

以下是一些需要注意的版本:

视窗 两者都运行Windows 2012 R2

MSBuild正在整个构建过程中从C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319运行 文件版本是4.7.3062.0 它与dev和live(working)上的版本相同。 有一件事是实时服务器在程序和功能中没有显示.NET 4.7,虽然我在那里安装了程序包以便在开发时获得4.7。它几乎就像MSBuild被手动复制到某个时刻一样。或者这是否意味着它来自VS安装?两个服务器上的dev和live msbuild版本都是相同的。新开发失败了。现场表演。

卷筒纸 在程序和功能 Microsoft Wed Deploy 3.5 3.1237.1764 Web部署工具1.1.0618

。净

开发

C:\ Users \ ccnet_new> wmic product其中“Name like'Microsoft .Net%'”获取名称,版本 名称版本 Microsoft .NET Framework 4.5.1多目标包4.5.50932 Microsoft .NET Framework 4.5.2多目标包(ENU)4.5.51209 Microsoft .NET Framework 4.6.1 SDK 4.6.01055 Microsoft .NET Framework 4.5多目标包4.5.50710 Microsoft .NET Framework 4.7 SDK 4.7.02053 Microsoft .NET Framework 4.5.1多目标包(ENU)4.5.50932 Microsoft .NET Framework 4.6.2 SDK 4.6.01590 Microsoft .NET Framework 4.7目标包(ENU)4.7.02053 用于Visual Studio的Microsoft .NET Framework累积智能感知软件包(ENU)4.7.02558 Microsoft .NET Framework 4多目标包4.0.30319 Microsoft .NET Framework 4.5 SDK 4.5.50709 Microsoft .NET Framework 4.5.2多目标包4.5.51651 Microsoft .NET Framework 4.6.1 Targeting Pack 4.6.01055 Microsoft .NET Framework 4.6.2 Targeting Pack 4.6.01590 Microsoft .NET Framework 4.5.1 SDK 4.5.51641 Microsoft .NET Framework 4.6.2目标包(ENU)4.6.01590 Microsoft .NET Framework 4.7 Targeting Pack 4.7.02053 C:\ Users \用户ccnet_new>

生活

C:\ Users \ CCNET_NEW> wmic product其中“Name like'Microsoft .Net%'”获取名称,版本 名称版本 Microsoft .NET Framework 4.5.1多目标包4.5.50932 Microsoft .NET Framework 4.5.2多目标包(ENU)4.5.51209 Microsoft .NET Framework 4.6.1 SDK 4.6.01055 Microsoft .NET Framework 4.5多目标包4.5.50710 Microsoft .NET Framework 4.5.1多目标包(ENU)4.5.50932 Microsoft .NET Core Host FX解析器 - 2.0.9(x64)16.36.26615 Microsoft .NET Core Host - 2.0.6(x86)16.24.26212 Microsoft .NET Core Host FX解析器 - 2.0.6(x64)16.24.26212 Microsoft .NET Framework 4.6.2 SDK 4.6.01590 用于Visual Studio的Microsoft .NET Framework累积智能感知软件包(ENU)4.7.02558 Microsoft .NET Core Runtime - 2.0.6(x64)16.24.26212 Microsoft .NET Core Host - 2.0.6(x64)16.24.26212 Microsoft .NET Framework 4多目标包4.0.30319 Microsoft .NET Framework 4.5 SDK 4.5.50709 Microsoft .NET Framework 4.5.2多目标包4.5.51651 Microsoft .NET Framework 4.6.1 Targeting Pack 4.6.01055 Microsoft .NET Framework 4.6.2 Targeting Pack 4.6.01590 Microsoft .NET Core Runtime - 2.0.9(x64)16.36.26615 Microsoft .NET Core Host - 2.0.9(x64)16.36.26615 Microsoft .NET Core Host FX解析器 - 2.0.6(x86)16.24.26212 Microsoft .NET Framework 4.5.1 SDK 4.5.51641 Microsoft .NET Core Runtime - 2.0.6(x86)16.24.26212 Microsoft .NET Framework 4.6.2目标包(ENU)4.6.01590 Microsoft .NET Core SDK - 2.1.202(x64)8.50.40411 C:\ Users \用户CCNET_NEW>

.NET核心的东西,我不认为应该重要(更新我安装,仍然没有修复)。 Intellisense不应该。这就是4.5目标。其余的应该匹配。 更新4.5定位只是隐藏为系统组件

更改了对Microsoft.cpp的引用。 c:\ Program Files(x86)\ MSBuild文件夹中的任何内容都与我的问题有关。两台服务器之间的外观相同。刚刚看到一些帖子并且不确定。

Dev没有v4.0文件夹中的文件,所有文件都在V4.0 \ V110文件夹中(prop文件,目标文件等)。

最后是针对cpp的Regedit

Live在v4.0文件夹中有VCTargetPath。

Dev在V4.0文件夹中没有VCTargetPath。

服务器和构建过程还有很多,但我希望这些信息足以让有人能够帮助我。

总结我们的实时服务器工作原理。在新的开发服务器上构建我正在尝试构建不起作用。服务器之间仍有不同之处,似乎它们无关紧要,我知道这不是一件好事。像一个人的东西有Java,另一个不但是,但这就是詹金斯。我们的软件中没有java东西。像SSDT的差异,但我的架构文件对数据库运行得很好,所以这应该没关系。我知道我可能会忽视某些事情。希望有人能指出我的方向。

我还应该补充说,如果我在构建失败后将所有文件系统结构留在原位并转到命令行并运行:

D:\ workspace \ 1002> c:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ MSBuild.exe“d:\ workspace \ 1002 \ Site \ Integration \ Integration.csproj”/ target:package

它在文件夹d:\ workspace \ 1002 \ site \ Integration \ obj \ Debug \ Package中构建Integrations.zip文件,.deploy,.cmd文件等。

当我正在运行并且它失败时,我正在进行下面的msbuild。

MSBuild.exe的路径: C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe执行命令cmd.exe / C“chcp 1252&C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe / t :FullBuild / p:Configuration = Release; Platform = AnyCPU; SourceDir = D:\ workspace \ 1002; DefineConstants = NONE; PatchLoaderSwitches = - noninteractive; Package = TRUE; InstallStartTime = 20190222085726 j6.proj“&& exit %% ERRORLEVEL %%来自D:\ workspace \ 1002 [1002] $ cmd.exe / C“chcp 1252&C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ msbuild.exe / t:FullBuild / p:Configuration = Release; Platform = AnyCPU; SourceDir = D: \ workspace \ 1002; DefineConstants = NONE; PatchLoaderSwitches = - noninteractive; Package = TRUE; InstallStartTime = 20190222085726 j6.proj“&& exit %% ERRORLEVEL %% 活动代码页:1252 Microsoft(R)Build Engine版本4.7.3062.0 [Microsoft .NET Framework,版本4.0.30319.42000] 版权所有(C)Microsoft Corporation。版权所有。

Build于2/22/2019 8:58:12 AM开始。 节点1上的项目“D:\ workspace \ 1002 \ j6.proj”(FullBuild目标)。 LoadFeatures: 特征: 核心 WebIntegration

msbuild webdeploy
1个回答
0
投票

发现Live上的C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web \ Microsoft.WEb.Publishing.targets文件比Dev上的文件更新。在Dev上尝试了文件并且它有效。

不确定我是否需要从该位置复制更多文件。还假设有一些Windows更新改变了这个文件或有人在Live上手动复制它。

旧文件的日期是6/26/2012。新文件的日期为2013年9月19日。

© www.soinside.com 2019 - 2024. All rights reserved.