【发布时间】:2017-07-28 16:15:54
【问题描述】:
我正在尝试创建一个 PowerShell v5 脚本来构建和发布一个 VS2017 WCF Web 服务应用程序 (.NET Framework 4),以便我可以在 Bamboo 中自动化它。我的 msbuild 命令可以正常工作,现在我需要使用 FolderProfile 将项目发布到文件夹。
我可以通过右键单击项目并选择发布,然后选择 FolderProfile 来成功地手动完成。这会将需要部署到网站的文件放在项目的 bin\Release\PublishOutput 位置。我想在 Powershell 脚本中自动执行该发布操作。
我试过Sayed Hashimi's网站上的推荐,类似下图(我只是用VS2017版本的15.2,当然项目名和profile替换成我的实际值);
msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=<profile-name> /p:Password=<insert-password> /p:VisualStudioVersion=15.2
但这并没有将任何文件放在bin\Release\PublishOutput 位置。看起来它只是做了一个标准构建。
编辑:
当我运行上述命令时,msbuild 在输出中列出了这一行;
DeploymentUnpublishable:
Skipping unpublishable project.
我浏览了 GitHub 上的 this 帖子,有些人引用了一个解决方案来更新到 VS2017 的 v15.2,我已经这样做了;
Microsoft Visual Studio Enterprise 2017
Version 15.2 (26430.16) Release
有什么想法吗?
编辑 - 解决方案
@Leo-MSFT 提供了这个解决方案...
msbuild myproject\myproject.vbproj /p:DeployOnBuild=true /p:PublishProfile=FolderProfile.pubxml /p:Configuration=Release
这会将文件放入 bin\release\PublishOutput。
我花了几天时间寻找这个解决方案,并添加了其他 SO 和 GitHub 论坛帖子中建议的各种命令参数,例如 /t:Publish、/p:PublishProfileRootFolder 和 /p:VisualStudioVersion=15.2。我删除了这些,只使用了上面的行,最终创建了我需要的已发布输出。
【问题讨论】:
标签: visual-studio powershell msbuild visual-studio-2017 webdeploy