Msbuild Web部署-使用相对路径进行本地文件系统部署
我想使用Web Deploy运行自定义部署设置 由于我希望在许多不同的环境(团队成员本地机器、4个不同的构建服务器)上运行时能够很好地完成这项工作,因此我希望将其部署到相对的本地路径 我想做的是:Msbuild Web部署-使用相对路径进行本地文件系统部署,msbuild,msdeploy,webdeploy,Msbuild,Msdeploy,Webdeploy,我想使用Web Deploy运行自定义部署设置 由于我希望在许多不同的环境(团队成员本地机器、4个不同的构建服务器)上运行时能够很好地完成这项工作,因此我希望将其部署到相对的本地路径 我想做的是: 部署到本地相对路径 让构建后的步骤做一些神奇的事情 但是,当我将要部署到的本地文件路径输入为“…\deploy\u Production”时 web deploy抱怨如下: 2>Connecting to ..\Deploy_Live... 2>Unable to create the
- 部署到本地相对路径
- 让构建后的步骤做一些神奇的事情
2>Connecting to ..\Deploy_Live...
2>Unable to create the Web site '../Deploy_Live'. The URL http://:0 is invalid.
就好像Web部署认为相对文件路径是网站URL一样。改用“.\”对我的事业没有帮助
如何让WebDeploy部署到本地相对路径
编辑1:
我曾尝试在生成之前使用ConvertToAbsolutionPath任务,但没有成功:
<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>
文件系统
http://mywebsite.com
..\部署生产
假的
编辑2:
上述方法有效,但仅当针对解决方案文件而不是项目文件运行命令行生成时,我们这里有一个bug,当使用文件系统发布时,您必须提供完整路径。实际上,我们在本周早些时候发现了这个bug。它将在我们的下一次更新中修复。在这种情况下,当传递相对路径时,它会错误地认为它是IIS路径 作为一种解决方法,您可以编辑.pubxml以使publishUrl成为完整路径。幸运的是,您可以使用MSBuild属性,这样就可以在团队场景中工作。下面是您应该做的,编辑.pubxml文件并将
publishUrl
的值更新为以下值
<publishUrl>$(MSBuildThisFileDirectory)..\..\..\Deploy_Production</publishUrl>
$(MSBuildThisFileDirectory)\\\\\\\\部署\u生产
此路径将相对于.pubxml文件本身。我已经通过命令行和发布对话框验证了这一点。如果您对此有任何问题,请告诉我,但修复程序有望在几个月后发布[当然没有保证]。在尝试实施此方法时,我遇到了一些非常奇怪的行为。当我从命令行运行MSbuild时,它的工作方式与您描述的一样。当我从VS2012中的“发布Web”对话框运行它时,它似乎将MSBuildProjectDirectory解释为\Properties\PublishProfiles。有什么猜测吗?我刚刚更新了示例以使用$(MSBuildThisFileDirectory),它总是相对于.pubxml文件本身。请改用它。我想这就是修复此问题的更新?这将作为一个正确的VS2012更新发布吗?@SayedIbrahimHashimi我只是用$(MSBuildProjectDirectory)在VS 2012更新3上进行了尝试,这将解析为.pubxml文件的位置。注意不要从上面的注释中使用MSBuildThisProjectDirectory,答案中引用的MSBuildThisFileDirectory是设置为使用可能的重复项