MSBuild:如何为Web部署项目(VS2010)构建Web部署包?

11
我将一个带有Web Deployment项目的Web站点项目从VS2008迁移到了VS2010。现在我可以在VS2010中为Web Deployment项目创建“生成部署包”,并且它运行良好!但是我找不到通过MSBuild执行相同操作的方法。
2个回答

11

我回答自己的问题。经过大量搜索和两天的调查,终于解决了问题。

简要说明如下:

  1. I created Configuration = QA (based on Debug configuration) for Solution via Configuration Manager.

  2. Important: I removed 'Platform' parameter for QA Configuration. I couldn't build package until I did it. (My dev computer is Win7-x64, and I'm not not sure would be this step necessary for x86. But my build server Win2008-x86 forks fine with this modification.) This is QA Configuration section from my .wdproj

    <PropertyGroup Condition=" '$(Configuration)' == 'QA' ">
    <DebugSymbols>True</DebugSymbols>
    <OutputPath>QA\</OutputPath>
    <EnableUpdateable>true</EnableUpdateable>
    <UseMerge>true</UseMerge>
    <SingleAssemblyName>
    </SingleAssemblyName>
    <UseWebConfigReplacement>false</UseWebConfigReplacement>
    <DeleteAppDataFolder>true</DeleteAppDataFolder>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <ExcludeApp_Data>true</ExcludeApp_Data>
    </PropertyGroup>
    
  3. I build and package .wbproj file with the following command:

    msbuild WebSite.Deploy.wdproj /t:Build;Package /p:Configuration=QA
    

相关信息:如果需要,您可以在QA配置部分使用标准的Web发布参数(例如ExcludeApp_Data、DeployIisAppPath等)。


1

我没有 .csproj 文件。该网站是一个 Web Site 项目,根本没有项目文件(这就是为什么我使用 Web 部署项目)。Web 部署项目的扩展名为 .wdproj,不理解 Target=Package。 - Roman Podlinov
啊,我错过了,尽管它就在你的问题中。我没有任何网站项目的经验,并且根据ScottGu博客中的评论,似乎不支持?那有点老了,所以我不知道它有多相关。http://weblogs.asp.net/scottgu/archive/2010/07/29/vs-2010-web-deployment.aspx - Zach Bonham
我发现Web Deploy有Target=Package,但在我进行第二次更改之前它对我没有起作用(请参见我的答案)。 - Roman Podlinov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接