标签: msbuild-wpp

Visual Studio 2012 Web Publish不会复制文件

我在VS 2012中有一个Web应用程序项目,当我使用Web发布工具时,它成功构建但不会将任何文件复制到发布目标(在本例中为文件系统).

如果我查看构建输出,我可以看到所有内容都被正确复制到obj\Release\Package\PackageTmp \但是然后我在构建输出中看到的就是:

4>完成建筑项目"{Project} .csproj".
4>删除现有文件...
4>发布文件夹/ ...
4> ==========构建:3成功,0失败,1最新,0跳过===== =====
==========发布:1成功,0失败,0跳过==========

尽管它表示发布成功,但目标目录中没有用于发布的文件.

我已经在多个项目中看到过这种情况,有时似乎解决方案/平台配置会导致此问题,但我无法找到确切的原因.

有没有其他人看到过这种情况,或者对如何使其正常工作有所了解?

更新:

我可能已经找到了解决方法.我刚刚再次发生这种情况,我正在搞乱发布设置.一旦我将设置选项卡上的所选配置更改为其他配置,然后返回到我想要使用的配置,我的所有文件再次开始发布.希望这可以在将来的其他项目中使用.

更新2:

我在Microsoft Connect上发布了一个错误,并从VS Web Developer团队的开发人员那里收到了回复.他说他们已经在内部版本中解决了这个问题,并将很快发布一个更新发布工具来解决这个问题.

更新3:

最近使用Visual Studio 2012 Update 2修复了此问题

asp.net asp.net-mvc visual-studio-2012 msbuild-wpp visual-studio-publish

229
推荐指数
9
解决办法
14万
查看次数

VS2010 Web Publish文件系统部署的命令行版本

伙计们,

简而言之,我想复制这个对话框: 替代文字

这是一个Visual Studio 2010 ASP.Net MVC项目.如果我执行此命令,我将获得所需的所有文件,包括"C:\ ToDeploy"目录中的转换后的web.configs.

我想在命令行上复制它,以便我可以将它用于QA环境构建.

我已经在远程部署的命令行上看到了有关如何执行此操作的各种文章,但我只是想为文件系统部署执行此操作.

我知道我可以使用nAnt任务或rake脚本复制这个功能,但是我想用这个机制来做,所以我不重复自己.

我已经对此进行了一些调查,我发现了这些链接,但没有一个能够干净地解决它:

提前致谢!

command-line visual-studio-2010 msdeploy web-publishing msbuild-wpp

45
推荐指数
2
解决办法
2万
查看次数

构建成功,但发布失败

直到两天前,我能够通过右键单击我的项目并单击上下文菜单上的"发布"按钮来使用Visual Studio 2010的"发布Web"选项.现在当我尝试做同样的事情时,我得到以下输出:

------ Build started: Project: ELMS, Configuration: Debug Any CPU ------
Build started 8/1/2011 3:08:03 PM.
GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are
up-to-date with respect to the input files.
_CopyOutOfDateSourceItemsToOutputDirectoryAlways:
Copying file from "C:\SVN\TrakNet\trunk\MTS\lib\Newtonsoft.Json.Net35.dll" to 
  "bin\lib\Newtonsoft.Json.Net35.dll".
CopyFilesToOutputDirectory:
  LMS -> C:\SVN\TrakNet\trunk\MTS\bin\LMS.dll

Build succeeded.

Time Elapsed 00:00:00.04
------ Publish started: Project: LMS, Configuration: Debug Any CPU ------
Object reference not set to an instance of an object.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped …
Run Code Online (Sandbox Code Playgroud)

asp.net publish visual-studio-2010 iis-7.5 msbuild-wpp

40
推荐指数
3
解决办法
7万
查看次数

MSBuild - 解决方案的项目特定目标不起作用

我有一个包含多个项目的解决方案,包括一个Web应用程序.我希望MSBuild针对Web应用程序项目执行"WebPublish"目标,并为解决方案中的所有其他项目执行"默认目标".

这篇MSDN文章说我可以指定命令行

msbuild SlnFolders.sln /t:NotInSlnfolder:Rebuild;NewFolder\InSolutionFolder:Clean
Run Code Online (Sandbox Code Playgroud)

但我永远无法使其工作 - MSBuild返回错误,类似"NotInSlnFolder:Rebuild"目标不存在.指定,构建,重建或清理的目标无关紧要 - 它在任何情况下都不起作用.

如何实现为解决方案指定项目特定目标的目标?

MSDN文档不起作用.还是我错过了什么?

msbuild msbuild-wpp

26
推荐指数
1
解决办法
2万
查看次数

使用发布配置文件部署现有包

我正在尝试使用新的发布配置文件支持(在VS2012和VS2010中通过更新提供)来创建连续交付"部署管道",从而在第一个"阶段"中创建包/ zip并且相同的包是使用不同的配置部署到各种环境.

使用pubxml文件中定义的设置从命令行部署现有软件包涉及哪些任务/属性,而不会导致构建?换句话说,我想"发布"到一个,然后将相同的包"发布"到另一个配置文件而不重建它.

(我知道我可以直接使用MSDeploy,但如果可能的话,我更愿意在每个项目上使用更少的管道)

msbuild msdeploy web-publishing webdeploy msbuild-wpp

25
推荐指数
1
解决办法
2万
查看次数

从TeamCity发布vs2012解决方案

我正在使用Visual Studio 2012和发布功能.我创建了一个发布配置文件,将我的应用程序部署到开发服务器,并且在我的机器上从vs2012执行时效果很好.这是我的问题; 在开发服务器上我也安装了TeamCity,我想在构建完成后触发发布.所以我创建了一个简单的构建步骤,如下所示:

Build file path: .\src\Solution.sln
Targets: Rebuild
Command line parameters: /p:DeployOnBuild=true;PublishProfile=Ci
Run Code Online (Sandbox Code Playgroud)

执行此步骤时,我收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377, 5): error ERROR_USER_NOT_ADMIN: Web deployment task failed. 
(Connected to 'dev.domain.com' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'dev.domain.com'. 
Run Code Online (Sandbox Code Playgroud)

Ci配置文件包含用户名和密码,当我在我的计算机上从Visual Studio运行发布时,该用户名和密码有效.我也尝试在构建步骤中传递用户名和密码作为参数,但我得到了相同的结果.我是否需要在管理员帐户下运行TeamCity服务才能使其正常运行?所有建议表示赞赏.

web-deployment teamcity-7.0 visual-studio-2012 msbuild-wpp

19
推荐指数
1
解决办法
5979
查看次数

是否可以将Web.config转换与发布配置文件链接?

目前,我可以根据构建配置轻松设置Web.config转换,例如使用connectionString=server;..for DebugconnectionString=./SQLExpress;..for Release.

但是有可能基于Web发布配置文件进行一些Web.config转换吗?即使用connectionString=server1;..的配置文件Server1,并connectionString=server2;..Server2

.net asp.net visual-studio-2010 web-config-transform msbuild-wpp

8
推荐指数
2
解决办法
1188
查看次数

为什么无法Web发布/部署查找我的Web.config?

我刚从codeplex克隆OrchardCMS,构建它并尝试使用Visual Studio的'Publish'命令将其部署到我的Web托管服务.

没有文件发布,发布失败,并出现以下错误:

1>------ Publish started: Project: Orchard.Web, Configuration: Release Any CPU ------
1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(2352,5): Error : Could not open Source file: Could not find a part of the path 'C:\Users\Tim\targetsite.co.uk\src\Orchard.Web\Media\web.config;Media\web.config'.
1>
========== Build: 0 succeeded, 0 failed, 5 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========

我检查了源代码,文件在那里,并在正确的文件夹中.那么这个错误信息实际上试图告诉我什么?这里发生了什么,我该如何解决?

orchardcms webdeploy visual-studio-2012 msbuild-wpp

6
推荐指数
1
解决办法
2999
查看次数

TFS构建下Binaries\_PublishedWebsites目录的目的是什么

TFS在构建代理工作目录下生成发布目录:

Z:\TFSBuilds\1\box\CT\Binaries\\_PublishedWebsites
Run Code Online (Sandbox Code Playgroud)

我想这是TFS自动发布网站的地方.我如何使用它来自动发布网站...我们应该将我们的IIS网站引用到这个目录.它的目的是什么?

tfs2010 build-agent msbuild-wpp

5
推荐指数
1
解决办法
8733
查看次数

VS2010中每个发布配置文件的不同连接字符串

是否可以根据所选的Web发布配置文件更改连接字符串(或仅服务器主机)?也许使用Web.config转换或其他方式?

我的意思是对于配置文件"测试"将连接字符串"MyConnString"(在已发布的Web.config中)更改"Data Source='example.com,14333;..."为配置文件"生产" - 到"Data Source=./SQLExpress;..."

asp.net web-config visual-studio web-config-transform msbuild-wpp

5
推荐指数
1
解决办法
5960
查看次数

pubxml Web发布工具事件生命周期

我正在使用Visual Studio 2012中的Web发布工具发布到文件系统。我了解到可以在Properties文件夹中打开* .pubxml来执行更多高级操作。

我想做的是在发布任务结束时运行一个命令行应用程序。我通常会在“自定义目标”中执行此操作,并在像这样的事件中进行其中一个构建后执行它。

 <Target Name="CustomAfterPublish" AfterTargets="GatherAllFilesToPublish">
 </Target>
Run Code Online (Sandbox Code Playgroud)

问题是GatherAllFilesToPublish要早点解决,因为我要在发布完成后最后执行它。是否有列表,或者有人知道事件的生成以及触发事件的顺序?基本上是FileSystem网站发布的事件生命周期。

或者,如何在最后手动启动目标?

我尝试了以下操作,但未成功:

<Target Name="Msg" AfterTargets="PipelineDeployPhase;MSDeployPublish;Package">
Run Code Online (Sandbox Code Playgroud)

以及每个人都单独。那么,发布生命周期的最后一个挂钩是什么?

--->编辑,我已经添加了跟踪。问题在于,文件已复制到临时路径,然后删除了所有文件。因此,"GatherAllFilesToPublish"从此处的命令行窗口中查看我的跟踪信息后,将无法复制到目标位置...

1>------ Build started: Project: Dependency of a project: Release Any CPU ------
2>------ Build started: Project: Dependency of another project, Configuration: Release Any CPU ------


3>------ Build started: Project: Web, Configuration: Release Any CPU ------
4>------ Publish started: Project: Web, Configuration: Release Any CPU ------
4>Transformed Web.config using C:\...\Web.Release.config into obj\Release\TransformWebConfig\transformed\Web.config.
4>Copying all files to temporary location below for …
Run Code Online (Sandbox Code Playgroud)

asp.net msbuild visual-studio-2012 msbuild-wpp

5
推荐指数
1
解决办法
1688
查看次数

如何为 .NET Core 应用程序扩展 msdeploy/发布管道

Visual Studio 中的旧样式/.NET Framework webapps 有一个可以自定义的发布管道。例如,Parameters.xml可以指定一个文件,如下所示:

  <PropertyGroup>
    <WebAppPackageConfigDir Condition=" '$(WebAppPackageConfigDir)' == '' ">$(MSBuildProjectDirectory)\Package</WebAppPackageConfigDir>
    <ProjectParametersXMLFile>$(WebAppPackageConfigDir)\Parameters.xml</ProjectParametersXMLFile>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

以便在构建 MSDeploy 包时,将其中定义的MSDeploy 参数合并到包中。Web 处理管道(主要在 中定义C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets)支持以多种方式自定义 MSDeploy 包 - 例如,包参数可以在文件或 MSBuild 中定义<ItemGroup>

在 SDK 样式的 webapps(例如 ASP.NET Core webapps)中,使用一个“新的”发布管道,例如C\Program Files\dotnet\sdk\2.1.2\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Publish.targets. 这会根据<PublishProtocol>值引入额外的目标文件,例如C\Program Files\dotnet\sdk\2.1.2\Sdks\Microsoft.NET.Sdk.Publish\build\netstandard1.0\PublishTargets\Microsoft.NET.Sdk.Publish.MSDeploy.targetsforPublishProtocol=MSDeploy.\Microsoft.NET.Sdk.Publish.MSDeployPackage.targetsfor PublishProtocol=MSDeployPackage。这两个文件都将_CreateParametersFiles目标定义为:

  <!--
  ***********************************************************************************************
  TARGET : _CreateParameterFiles
  ***********************************************************************************************
 -->

  <Target Name="_CreateParameterFiles">

    <ItemGroup>
      <MsDeployDeclareParameters Remove="@(MsDeployDeclareParameters)" />

      <MsDeployDeclareParameters Include="IIS Web Application …
Run Code Online (Sandbox Code Playgroud)

msdeploy webdeploy msbuild-wpp visual-studio-2017 asp.net-core-2.0

5
推荐指数
0
解决办法
536
查看次数

为构建服务器自定义Visual Studio 2012的Web发布管道(WPP)

我正在为大型企业服务基础架构创建构建和部署基础架构.我们将Build Server用于构建服务器,Visual Studio 2012用于生成WPP部署包,MSDeploy 2.1用于执行实际部署.(我们不能使用MSDeploy 3,因为它有很多错误 - 使用WMSvc等破坏了NTLM身份验证).

我创建了一个"Project.wpp.targets"文件并添加了以下属性:

<DeployOnBuild Condition="$(DeployOnBuild) == '' And '$(OutDir)' != '$(OutputPath)' ">true</DeployOnBuild>
<WebPublishMethod>Package</WebPublishMethod>
<DeployManagedPipelineMode>Integrated</DeployManagedPipelineMode>
<Disable_CopyWebApplication>True</Disable_CopyWebApplication>
Run Code Online (Sandbox Code Playgroud)

当编译在构建服务器上发生时,OutDir将与OutputPath不同,并且将激活WPP.构建输出以下文件:

Project.zip
Project.SetParameters.xml
Project.SourceManifest.xml
Project.deploy.cmd
Project.deploy-readme.txt
Run Code Online (Sandbox Code Playgroud)

project.zip里面是:

Archive.xml
Parameters.xml
systemInfo.xml
Run Code Online (Sandbox Code Playgroud)

问题1 - 什么是SourceManifest.xml文件,为什么它不在zip包中?似乎为部署创建zip文件包的全部原因是它完全自包含.SourceManifest文件是"松散的" - 我们不能再将zip文件放在我们的部署文件共享上了.为什么不在包中?它还指向构建服务器上的特定路径!

问题2 - 什么是Archive.xml文件?对SourceManifest.xml来说似乎有些多余 - 我看到了一个提供者,一些提供者等.在Microsoft文档中,他们在包中提到了"manifest.xml".此文件看起来像清单,但它被称为"archive.xml".文件名是否重要?manifest.xml与archive.xml不同吗?它们如何与SourceManifest.xml相关,它看起来类似但同时又不同?

问题3 - systemInfo.xml是什么?它似乎列出了在构建服务器上为IIS角色安装的所有组件.例如,如果我在本地计算机上运行build at命令行,它会列出已安装.NET 2.0和4.0以及我机器上各种IIS组件的许多True/False值.问题是这些设置与我实际想要部署的内容无关!MSDeploy是否会查看此文件?它可以被禁用吗?我绝对不希望构建服务器的配置工件影响生产!

tfsbuild msdeploy visual-studio-2012 msbuild-wpp

4
推荐指数
1
解决办法
1204
查看次数