gpt4 book ai didi

iis - MSdeploy 使用错误的虚拟目录名称部署 MVC 2 应用程序

转载 作者:行者123 更新时间:2023-12-04 22:07:21 26 4
gpt4 key购买 nike

我正在使用 MSbuild(v4.0.30319.1) 和 MSdeploy(v7.1.618.0) 在 IIS(v7.5) 上部署我的 ASP MVC 2 应用程序。
这是我运行的命令:

msbuild.exe <path to my csproj>/MyMvcApp.csproj /t:Package /p:configuration=release;outDir=<my output dir>

和 msdeploy:
msdeploy.exe -verb:sync -source:package='<MSBuildOutputDir>\_PublishedWebsites\Webui_Package\MyMVCApp.zip' -dest:auto 

构建和部署后,应用程序是通过地址 http://localhost/MyMVCApp_deploy 而不是地址 http://localhost/MyMVCApp 部署的。
没想到 _deploy会在地址里。
我怎样才能解决这个问题?

最佳答案

正如 Portalus 所评论的,您可以在属性页面中控制应用程序的名称。我将在这里对这个答案进行一些扩展。

在 PP/Web 选项卡上配置默认值

默认情况下,当您打包/发布您的 Web 项目时,我们将创建一个名为 的 Web 部署参数。 IIS Web 应用程序名称 控制此值。这个的默认值是
项目名称_deploy 。我们在那里放置 _deploy 后缀的原因是针对 IIS 场景。因此,您可能已经有一个名为 ProjectName 的 IIS 应用程序,但您拥有一个名为 ProjectName_deploy 的应用程序的可能性要小得多。您可以在项目属性的打包/发布 Web 选项卡上自定义此值。如果你走这条路线,要记住的一件事是,所有这些设置都与特定的 构建配置 相关联。因此,如果您在 Debug 上配置设置并使用 Release 创建您的包,则这些设置将不适用。见下图。

当您设置此值时,它会设置 MSBuild 属性 DeployIisAppPath,如果您想拥有与其获取的值相关的一些逻辑,则可以使用它。

在发布时传递参数值

如果需要,您也可以在发布时指定此参数的值。您在这里有两种主要方法。

  • 指定单个属性的值
  • 在文件
  • 中指定此属性和其他属性的值

    1. 指定单个属性的值:

    您可以在调用 msdeploy.exe 时使用 -setParam 参数为该参数提供新值。例如:
    %msdeploy% -verb:sync -source:package=WebApplication3.zip -dest:auto -setParam:name="IIS Web Application Name",value="Default Web Site/FooBar"

    2. 在文件中指定此属性和其他属性的值

    当您在 VS 中创建包时,我们会自动为您创建一个名为 {ProjectName}.SetParameters.xml 的文件。该文件是一个简单的 XML 文件,它将包含所有参数及其默认值。您可以更新该文件以包含正确的参数值,然后将其传递到 msdeploy.exe(注意:该文件不必命名为 ...SetParameters.xml,您可以将其重命名为您想要的任何名称)。如果您想使用此方法,则只需在调用 msdeploy.exe 时使用 -setParamFile 参数。以下是此命令行语法的示例:
    %msdeploy% -verb:sync -source:package=WebApplication3.zip -dest:auto -setParamFile=WebApplication3.SetParameters.xml

    关于iis - MSdeploy 使用错误的虚拟目录名称部署 MVC 2 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8256131/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com