注: 这是一个带有MVC Web应用程序和其他几个项目的Visual Studio 2017解决方案,其中并非所有项目都被Web应用程序项目引用。直到现在,我一直在使用VS直接发布到测试服务器,但我已将其移动到VSTS,并设置了构建和发布定义,但尚未起作用。
我想要实现的目标是让我的(托管的)VSTS构建代理生成可以简单地复制到其目标位置的已发布文件,而不是(on-prem)发布代理。因此,我正在尝试从VS命令行本地测试MS构建步骤,以便产生文件并记录它们所在的路径。也许我把这个问题搞得比它需要的更复杂了?
这些选项将创建一个单独的压缩存档及其相关文件,并将其放置在工件暂存目录中。是否有一种方法可以直接发布文件,而无需将它们放入存档中-并直接放入工件暂存目录中?
Visual Studio Build
MSBuild parameters
/t:My_MVCWeb_Project_Name /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\"
在我的发布(使用本地代理)中,我有一个“复制文件”任务,目标是IIS应用程序所在的UNC路径。但这只会复制存档文件。那么,我该如何像使用发布配置文件一样直接将文件复制到应用程序目录中?
[更新2 - 仍然生成zip文件]
MSBuild my_solution_name /t:"my_project_name" /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:SkipInvalidConfigurations=true /p:PackageLocation="D:\temp\local-dev-build-dir"
[更新3] 作为测试,尝试从命令行运行这些内容,但是没有生成任何东西。
msbuild D:\app_dir>MSBuild my_solution_name.sln /t:"my_web_proj_name" /p:SkipInvalidConfigurations=true /p:DeployOnBuild=true /p:WebPublishMethod=FileSystem /p:publishUrl="D:\temp\app_build_dir\\"
/p:DeployDefaultTarget=WebPublish