Web部署 - 使用本地文件系统的部署相对路径(Web Deploy - Using Relativ

2019-07-31 02:20发布

我想使用Web部署运行自定义安装部署。

由于我想有这样的做工精细许多不同的环境中运行时(团队成员的本地机器,4种不同的构建服务器)我要部署到一个相对于本地路径。

我所想要做的是:

  • 部署到本地相对路径
  • 有构建步骤后做了神奇的东西...

然而,当我进入本地文件路径来部署为:“.. \ Deploy_Production”

Web部署抱怨这一点:

2>Connecting to ..\Deploy_Live...
2>Unable to create the Web site '../Deploy_Live'.  The URL http://:0 is invalid.

它仿佛Web部署认为,相对文件路径是一个网站的网址。 使用“.. \”,而不是不利于我的事业。

你怎么WebDeploy部署到本地相对路径?

编辑1:

我曾尝试构建之前使用ConvertToAbsolutePath任务,但没有成功:

  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <SiteUrlToLaunchAfterPublish>http://mywebsite.com</SiteUrlToLaunchAfterPublish>
    <publishUrl>..\Deploy_Production</publishUrl>
    <DeleteExistingFiles>False</DeleteExistingFiles>
  </PropertyGroup>

  <Target Name="BeforeBuild">
    <ConvertToAbsolutePath Paths="$(publishUrl)">
      <Output TaskParameter="AbsolutePaths" PropertyName="publishUrl" />
    </ConvertToAbsolutePath>
  </Target>

编辑2:上述作品,但只有当运行命令行构建针对解决方案文件不是一个项目文件

Answer 1:

我们有一个错误在这里,使用文件系统发布时,你必须提供完整的路径。 实际上,我们发现这个bug在本周早些时候。 将固定在我们的下一次更新。 在当相对路径传递这种情况下,错误地认为它的一个IIS路径。

作为一种变通方法,您可以编辑.pubxml使publishUrl一个FULLPATH。 幸运的是,你可以使用一个MSBuild属性,使这部作品在球队的情况。 这里是你应该做的事情,编辑.pubxml文件和更新的价值publishUrl为以下。

<publishUrl>$(MSBuildThisFileDirectory)..\..\..\Deploy_Production</publishUrl>

这条道路将相对.pubxml文件本身。 我已经验证,这从两个命令行以及发布对话框正常工作。 如果您有任何这方面的问题,让我知道,但修复应有望在几个月[当然没有保证:)]被释放。



文章来源: Web Deploy - Using Relative Paths for local file system deployment