4

当我构建我的ASP.NET Web 应用程序时,我得到一个 .dll 文件,其中包含网站的代码(这很棒),但该网站还需要所有 .aspx 文件和朋友,并且这些需要放置在正确的目录结构。作为每次构建的结果,我怎样才能将这一切都放在一个目录中?试图从源目录中选择正确的文件是一件痛苦的事情。

最终结果应该是 xcopy 可部署的。

更新:我不想手动使用我知道的发布命令。我希望应用程序所需的全套文件成为构建输出 - 这意味着我还可以通过运行MSBuild在一个地方获得全套文件。

4

9 回答 9

5

一种解决方案似乎是 Web 部署项目 (WDP),它是 Visual Studio(和 msbuild)的附加组件,可将 Web 项目构建到目录中,并且可以选择合并程序集并更改 web.config 文件。构建 WDP 的输出是在一个目录中部署站点所需的所有文件。

有关 Web 部署项目的更多信息:

  1. 关于WDP 2008的 webdevtools MSDN 博客的公告
  2. ScottGu 介绍 WDP 2005

此解决方案的唯一缺点是需要附加组件,该附加组件必须在构建机器上可用。不过,现在已经足够好了!

于 2008-09-11T14:15:42.033 回答
2

ASP.NET 没有为站点提供真正的xcopy 部署。这取决于在 IIS 中有一个虚拟目录/应用程序。但是,一旦创建了该虚拟目录,您就可以使用 xcopy 进行更新。

于 2008-09-10T21:08:33.627 回答
1

你可以发布网站。如果你想自动化你的部署,你需要使用一些脚本

于 2008-09-10T21:09:28.163 回答
1

您是否尝试过在 .net 框架目录中使用 aspnet_compiler.exe?我很确定您可以创建 Web 应用程序或网站的“部署就绪”版本。

于 2008-09-17T00:09:28.117 回答
1

MSBuild 上的 _CopyWebApplication 目标将完全满足您的需求。问题是只有主程序集会被复制到 bin 文件夹,这就是为什么需要复制任务来复制 bin 文件夹上的任何其他文件的原因。

我试图将示例脚本作为这篇文章的一部分发布,但未能成功。

请查看我博客上的这篇文章,该文章描述了如何创建类似于您需要的 MSBuild 脚本。

于 2009-08-18T20:32:02.090 回答
0

您是否尝试在解决方案资源管理器中右键单击该网站并单击“发布网站”?

于 2008-09-10T21:07:38.650 回答
0

构建 --> 发布

将出现一个对话框,指导您完成整个过程。

于 2008-09-10T21:09:30.660 回答
0

对于您在更新中描述的自动化构建,我建议您查看MSBuildCruiseControl.NET

于 2008-09-10T21:18:23.417 回答
0

这取决于您需要多么复杂的解决方案,例如,您可以只使用脚本和 jenkins。您可以将 MSBUild 与 Jenkins 一起使用,仅用于部署到 IIS。如果你有 Jenkins,其他工具很容易在以后连接到它。但是,如果您只想构建,请使用 jenin 执行每个使用 MSDeploy 的构建的脚本,它会很好用。

我就是这样做的,只是给你一个感觉:

Sonarqube 使用 Gallio、Gendarme、FXcop、Stylecop、NDepths 和 PartCover 来获取您的指标,所有这些都非常简单,因为 SonarQube 无需太多配置即可自动执行此操作。

这是 Jenkins 女巫构建和获取声纳指标以及自动部署到 IIS 的另一项工作。我使用一个简单的脚本一行来调用我的 MSBuild 和 wich URL、pass 和 user。

还有 Sonarqube,我项目的所有指标。这是一个简单的 MVC4 应用程序,但效果很好!:

如果您想了解更多信息,我可以为您提供一个很好的指南。

整个设置使用 MSBuild,也构建和部署应用程序。

于 2013-08-16T09:54:41.017 回答