我想使用 Web 部署来运行自定义部署设置。
因为我希望在许多不同的环境(团队成员本地计算机、4 个不同的构建服务器)上运行时都能正常工作,所以我想部署到相对的本地路径。
我想做的是:
- 部署到本地relative path
- 让构建后的步骤做神奇的事情......
但是,当我输入要部署的本地文件路径时:“..\Deploy_Production”
web 部署对此抱怨:
2>Connecting to ..\Deploy_Live...
2>Unable to create the Web site '../Deploy_Live'. The URL http://:0 is invalid.
就好像 Web 部署认为相对文件路径是网站 URL。使用“..\”代替对我的事业没有帮助。
如何让WebDeploy部署到本地relative path?
Edit 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>
Edit 2:上面的方法有效,但是only当运行命令行构建时Solution文件不是project file
我们这里有一个错误,当使用文件系统发布时,您必须提供完整路径。我们实际上在本周早些时候发现了这个错误。它将在我们的下一次更新中修复。在这种情况下,当传递相对路径时,它会错误地认为它是 IIS 路径。
作为解决方法,您可以编辑 .pubxml 以使publishUrl 成为完整路径。幸运的是,您可以使用 MSBuild 属性,以便在团队场景中发挥作用。这是您应该做的,编辑 .pubxml 文件并更新publishUrl
如下。
<publishUrl>$(MSBuildThisFileDirectory)..\..\..\Deploy_Production</publishUrl>
该路径将相对于 .pubxml 文件本身。我已经验证这在命令行和发布对话框中都有效。如果您对此有任何问题,请告诉我,但修复程序有望在几个月内发布[当然不能保证:)]。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)