【问题标题】:How to deploy an ASP.NET MVC application on build using MSBuild in Visual Studio 2015?如何在 Visual Studio 2015 中使用 MSBuild 在构建时部署 ASP.NET MVC 应用程序?
【发布时间】:2018-12-03 14:14:37
【问题描述】:

我希望在构建项目时将应用程序部署到本地文件夹。这应该会生成一个 zip 文件,我可以使用它来导入 IIS。我怎样才能做到这一点?

【问题讨论】:

  • 您可以实现这一点,运行类似的命令(在您的应用程序文件夹上):MSBuild "YourFullyQualifiedProjectName.csproj/vbproj" /T:Package
  • 我希望在 VS 中构建时部署它。

标签: asp.net asp.net-mvc msdeploy webdeploy


【解决方案1】:

命令行

msbuild yoursolutionfile.sln /p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:PackageLocation="yourpath\yourfilename.zip"

DeployOnBuild 告诉 msbuild 部署(到包位置)

WebPublishMethod 创建部署包。您可以为网络发布选择其他选项,例如文件复制。

PackageAsSingleFile 压缩输出

以上都是在命令行中运行的,虽然不是在 VS 中执行,但可以一步构建和部署。您可以打开一个命令窗口,您可以在其中随时运行此命令。

IN VS

你可以在 VS 中使用Web Deployment Publish Wizard。它在构建菜单中。它还将引导您完成此步骤。

但是,这只是在构建发生之后,并且是第二步。

要一次完成所有操作,嗯,不“支持”通过 VS 在构建上发布网络。如在,不是一个简单的方法来做到这一点。您可以运行我在构建后显示的 cmd,但这实际上意味着第二次重新编译,我认为这是一个可怕的想法,所以除非这是一个非常小的项目,否则不要这样做,即使那样,不,也许可以。

在 VS 中一步到位

返回 MSBUILD,但要更改项目文件的 xml(msbuild 命令)。

首先创建您的发布配置文件(发布向导创建的文件)。这实际上从我的第一个示例中创建了 msbuild 的设置,但将其保存到文件中。

然后按照@richardSzalay 或@chief7 的描述编辑您的项目文件(csproj)

csproj 文件是 VS 使用的 msbuild 命令。在这些示例中,您创建了一些属性 (propertygroup) 来设置部署和 AfterBuild 目标来运行发布。

【讨论】:

  • 我应该将其指定为构建后脚本吗?
  • 这是构建,所以没有。当您运行此命令时,它将构建并打包到指定的位置。但是,这是一个命令行示例。我已经修改了答案,以包括如何在 VS 中使用构建菜单中的发布命令来完成
  • 我希望在 VS 中构建解决方案时发布它。
【解决方案2】:

从 csproj 中找到以下属性组:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

第一个用于调试,第二个用于发布。

在两个属性组中添加以下内容(如果您希望自动构建在调试和发布模式下发生)。

<DeployOnBuild>true</DeployOnBuild>
<PublishProfile>EMRFHIRServer</PublishProfile>

它现在将为 Visual Studio 构建和 MSBuild 自动发布。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    相关资源
    最近更新 更多