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


我将一个Web站点项目(使用Web部署项目)从VS2008迁移到VS2010。现在,我可以在VS2010中为Web部署项目制作“构建部署包”,它非常有用!但我找不到如何通过MSBuild做同样的方法。


3452
2018-03-18 21:12


起源



答案:


我回答我的一个问题。经过大量的谷歌搜索和2天的调查后,它终于奏效了。

简要说明如何:

  1. 我通过Configuration Manager为Solution创建了Configuration = QA(基于Debug配置)。

  2. 重要: 我删除了QA配置的'Platform'参数。在我做之前我无法构建包。 (我的开发计算机是Win7-x64,我不确定x86是否需要这一步。但是我的构建服务器Win2008-x86在这个修改时很好。)这是我的.wdproj的QA配置部分

    <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. 我使用以下命令构建并打包.wbproj文件:

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

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


11
2018-03-22 09:38





尝试

MSBuild YourProject.csproj /T:Package

这应该生成一个部署包。这一页, 如何:使用MSBuild创建Web包  威力 提供更多信息,但不多。


1
2018-03-18 21:24



我没有.csproj。该站点是一个Web站点项目,根本没有项目文件(这就是我使用Web部署项目的原因)。 Web部署项目具有扩展名.wdproj,并且不了解Target = Package - Roman Podlinov
啊,我错过了,即使它在你的问题中就在那里。我对网站项目没有任何经验,根据ScottGu博客的评论,看起来不支持吗?那有点旧,所以我不知道它是多么相对。 weblogs.asp.net/scottgu/archive/2010/07/29/... - Zach Bonham
我发现Web Deploy有Target = Package,但是在我做出第2次更改之前它对我不起作用(参见我的回答)。 - Roman Podlinov


答案:


我回答我的一个问题。经过大量的谷歌搜索和2天的调查后,它终于奏效了。

简要说明如何:

  1. 我通过Configuration Manager为Solution创建了Configuration = QA(基于Debug配置)。

  2. 重要: 我删除了QA配置的'Platform'参数。在我做之前我无法构建包。 (我的开发计算机是Win7-x64,我不确定x86是否需要这一步。但是我的构建服务器Win2008-x86在这个修改时很好。)这是我的.wdproj的QA配置部分

    <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. 我使用以下命令构建并打包.wbproj文件:

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

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


11
2018-03-22 09:38





尝试

MSBuild YourProject.csproj /T:Package

这应该生成一个部署包。这一页, 如何:使用MSBuild创建Web包  威力 提供更多信息,但不多。


1
2018-03-18 21:24



我没有.csproj。该站点是一个Web站点项目,根本没有项目文件(这就是我使用Web部署项目的原因)。 Web部署项目具有扩展名.wdproj,并且不了解Target = Package - Roman Podlinov
啊,我错过了,即使它在你的问题中就在那里。我对网站项目没有任何经验,根据ScottGu博客的评论,看起来不支持吗?那有点旧,所以我不知道它是多么相对。 weblogs.asp.net/scottgu/archive/2010/07/29/... - Zach Bonham
我发现Web Deploy有Target = Package,但是在我做出第2次更改之前它对我不起作用(参见我的回答)。 - Roman Podlinov