当前位置:  开发笔记 > 编程语言 > 正文

从命令行复制VS2008"发布网站"

如何解决《从命令行复制VS2008"发布网站"》经验,为你挑选了4个好方法。

我试图在构建脚本中复制Visual Studio 2008中此对话框的确切功能: alt text http://i41.tinypic.com/1osl1f.png

这是一个ASP.NET 网站,而不是Web 应用程序.

我已经用Google搜索了这个并且发现了很多涉及MSBuild的东西,但这一切似乎都涉及ASP.NET Web应用程序中的解决方案:

http://www.driebier.net/post/Using-MSBuild-to-deploy-visual-studio-2005-web-applications.aspx http://blog.donnfelker.com/post/TFS-Build-Not-Publishing织网,Applications.aspx

本文似乎与ASP.NET网站相关,但我发现在尝试使用这些建议构建时出现错误:

C:\dev\T&A>msbuild /t:_CopyWebApplication /property:OutDir=c:\temp\taweb\ /prope
rty:WebProjectOutputDir=c:\temp\taweb\

Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3074]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 22/04/2009 11:50:42.
Project "C:\dev\T&A\TAWeb.sln" on node 0 (_CopyWebApplication target(s)).
  Building solution configuration "Debug|.NET".
C:\dev\T&A\TAWeb.sln : error MSB4057: The target "_CopyWebApplication" does not
 exist in the project.
Done Building Project "C:\dev\T&A\TAWeb.sln" (_CopyWebApplication target(s)) --
 FAILED.


Build FAILED.

"C:\dev\T&A\TAWeb.sln" (_CopyWebApplication target) (1) ->
  C:\dev\T&A\TAWeb.sln : error MSB4057: The target "_CopyWebApplication" does n
ot exist in the project.

0 Warning(s)

1 Error(s)

Time Elapsed 00:00:00.06

我试图发布的解决方案(继承,而不是我自己)没有.csproj文件(我可以从C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v9.0 \导入_CopyWebApplication目标) web应用\ Microsoft.WebApplication.targets)

也许这是Visual Studio 2005/2008的区别?

无论如何,我觉得我在那里走错了路.

基本上我只需要实现准确上述对话做什么,但在命令行.

非常感谢



1> AMissico..:

以下命令使用默认设置复制" 发布网站"对话框.

使用默认设置发布网站的命令

aspnet_compiler -nologo -v / -p "C:\WebSite1" -u "C:\TargetPath"

参考

1)请参阅社区内容,标题为" 您想发布一个站点,但您还没有Visual Studio",请访问http://msdn.microsoft.com/en-us/library/20yh9f1b(classic).aspx.

Microsoft Visual Studio 2005> Visual Studio 2005命令提示符

Microsoft Visual Studio 2008> Visual Studio 2008命令提示符

Microsoft .NET Framework SDK v2.0> SDK命令提示符

2)请参阅http://msdn.microsoft.com/en-us/library/ms229863.aspx上的 "ASP.NET编译工具(Aspnet_compiler.exe)" .

3)摘自演练:使用XCOPY部署ASP.NET Web应用程序,网址为http://msdn.microsoft.com/en-us/library/f735abw9.aspx

作为使用所有.NET Framework版本支持的XCOPY命令行工具的替代方法,您可以使用位于%SystemRoot%\ Microsoft.NET\Framework\version 2或更高版本的新.NET Framework 2.0工具\ Aspnet_compiler.exe用于编译和部署Web应用程序.有关更多信息,请参见ASP.NET编译工具(Aspnet_compiler.exe).

4)以下摘录自如何:预编译ASP.NET网站以进行部署,网址:http://msdn.microsoft.com/en-us/library/ms227976.aspx.

如果您的网站不是Internet信息服务(IIS)应用程序,因此IIS元数据库中没有条目,则使用以下值作为-v开关.

aspnet_compiler -p physicalOrRelativePath -v / targetPath

在这种情况下,physicalOrRelativePath参数引用网站文件所在的完全限定目录路径,或相对于当前目录的路径.physicalOrRelativePath参数中允许使用句点(.)运算符.-v开关指定编译器将用于解析应用程序根引用的根(例如,使用波浪号(〜)运算符).为-v开关指定/的值时,编译器将使用物理路径作为根来解析路径.



2> slf..:

我认为您正在寻找AspNetCompiler任务


    




3> Brad Bruce..:

这种"神奇"组合可以满足您的需求.)我的项目只需要两天的时间来获得正确的组合.)关键是要包含_CopyWebApplication目标和ResolveReferences目标.

msbuild "/t:_CopyWebApplication;ResolveReferences;publish" /p:OutDir="C:\inetpub\wwwroot\[appname]\bin\" /p:WebProjectOutputDir="C:\inetpub\wwwroot\[appname]" c:\directory\[appname].csproj    



4> 小智..:

添加到.csproj文件:





    


更改要发布到的文件夹的"..\PreCompiledWeb",或者您可以指定一个变量,如:$(OutputFolder),您可以传递

然后转到web应用程序的文件夹并执行:

msbuild /t:Build

然后,您可以使用xcopy将这些文件复制到任何位置:

xcopy "..\PreCompiledWeb\*.*" "C:\MySite\" /e

应该这样做.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有