使用MsBuild发布网站而不使用发布配置文件

10

可以使用一个发布配置文件来发布 Visual Studio 网站,既可以从 Visual Studio 2013 的发布对话框中使用,也可以从命令行 MsBuild 中使用,就像在这个问题的回答中解释的那样Using msbuild to execute a File System Publish Profile

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
./ProjectRoot/MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=FileSystemDebug

然而我想完全摆脱发布配置文件并通过命令行完成所有操作 - 因为我不希望发布路径被硬编码在PublishProfile xml文件中。我该如何直接在命令行参数中指定相同的选项?我已经尝试使用OutDir,但这会导致与PublishProfile中指定的路径不同的行为(我的路径中会附加一个额外的_PublishedWebsites)。


我现在正在生成一个临时发布配置XML文件作为我的构建脚本的一部分,并在MSBuild运行后将其删除。我不确定是否有解决我原始问题的方法,但这是一个简单的变通方法。 - Ande
2个回答

13

您实际上可以从命令行覆盖PublishProfile设置。您需要使用此参数:

/p:publishUrl=pathToPublishHere

如果是本地文件系统,这个应该完全没问题。


10

publish.bat

SET PROJECT="D:\Github\MyWebSite.csproj"
SET MSBUILD_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin"
SET PUBLISH_DIRECTORY="C:\MyWebsitePublished"

cd /d %MSBUILD_PATH%
MSBuild %PROJECT%  /p:DeployOnBuild=True /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl=%PUBLISH_DIRECTORY%

需要在服务器上安装Visual Studio。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接