我有一个Visual Studio2010MVC2 Web应用程序,它是我使用Hudson通过命令行构建的.我想让Hudson发布Web输出,所以我在命令行中添加了DeployOnBuild=true和CreatePackageOnPublish=True标记.

我的命令是:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
   /target:Clean,Build 
   /property:Configuration=Debug;DeployOnBuild=True;CreatePackageOnPublish=True; 
   [my project name.csproj]

在我的开发计算机(Windows7)上运行此命令可成功将Web输出发布到\obj\Debug\Package\PackageTmp\.但是在Hudson服务器(WS2008)上运行它可以成功编译,但不会发布.相同的命令,相同版本的MSBuild,相同的源代码.

我try 了/t:Publish个目标,这给了我一个跳过的不可发布的项目响应,正如我在其他几个人的帖子中看到的那样.

我也try 过将DeployOnBuild=TrueCreatePackageOnPublish=True标记添加到我的项目文件中,但没有任何更改.

你有什么 idea 为什么这本书没有出版吗?我没有正确使用这些标签吗?我肯定这里有我没看到的东西.

推荐答案

假设在hudson服务器上安装了Visual Studio 2010,那么可能是缺少发布"目标"文件.在经历了一番当头棒喝之后,我终于解决了这个问题.

很长一段时间以来,我知道我需要复制目录

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications

从我的本地机器VS2010到我的服务器,以使项目达到build.但为了让项目也达到publish,我还需要复制目录

C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web

注意:在我的例子中,我实际上是将这些文件夹提交到我的源代码管理中,并更改csproj文件中的<MSBuildExtensionsPath32>值,以指向这些签出的文件夹(因此在准备服务器时只需少做一步).这是不必要的,让它工作,但你可能要考虑这一点后,你解决你的问题.

更新:所以在我完成上述操作后,构建抱怨说它找不到"Microsoft.Web.Deployment.dll".为了解决这个问题,我需要在服务器even though I am only publishing to the file system上安装Microsoft Web Deploy v2.0.我想我能理解其中的逻辑.

更新:我发现通过IIS Web平台安装程序安装"Visual Studio 2010 Shell(集成)"将安装所需的构建目标.这似乎是一个很好的折衷方案,既不在服务器上安装整个VisualStudio应用程序,也不从开发人员机器上手动将看似任意的文件夹复制到服务器上.

Asp.net相关问答推荐

Windows 命令行中的/p:是什么意思

如何使多行的 TextBox 控件无法调整大小?

VS2012 中无法识别的标签前缀或设备过滤器asp

C# ASP.NET Core Serilog 添加类名和方法到日志(log)

在 Sessions 中存储自定义对象

HttpContext.Current.Request.IsAuthenticated 和 HttpContext.Current.User.Identity.IsAuthenticated 有什么区别?

Twitter bootstrap glyphicons 不会出现在发布模式 404 中

IIS 7.5 上没有 asp.net 功能

HTTP 错误 401.3 - 未经授权

Httpclient 该实例已经启动了一个或多个请求.只能在发送第一个请求之前修改属性

会话变量保存在哪里?

等价于 ASP.NET Core 中的 Html.RenderAction

如何从 ASP.Net 发布然后重定向到外部 URL?

通过 ASP.NET/C# 使用 Plupload

如何在 .NET Core 中实现 DbContext 连接字符串?

在 Asp.Net Core 中动态更改连接字符串

在 ASP.NET MVC 中获取服务器机器名称?

System.Linq.IQueryable 不包含Where的定义

如何在 ASP.NET 响应中传递大文件?

Visual Studio 2013 ASP.NET 项目中 Antlr 包的用途是什么?