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

And*_*nde 6 msbuild continuous-integration

一个发布配置文件发布了Visual Studio网站可以从两个在Visual Studio 2013中使用发布对话框,然后在命令行的MSBuild在这个问题解释使用的MSBuild执行文件系统发布配置文件

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 
./ProjectRoot/MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=FileSystemDebug
Run Code Online (Sandbox Code Playgroud)

但是,我想完全摆脱发布配置文件并从命令行执行所有操作 - 因为我不希望发布路径在PublishProfile xml文件中进行硬编码.如何直接在命令行参数中指定相同的选项?我已尝试使用OutDir,但这会导致与PublishProfile中指定的路径不同的行为(_PublishedWebsites附加到我的路径中).

thi*_*mat 10

实际上,您可以从命令行覆盖PublishProfile设置.你会想要这个参数:

/p:publishUrl=pathToPublishHere
Run Code Online (Sandbox Code Playgroud)

如果它是本地文件系统,这应该工作得很好.


Alp*_*glu 9

发布.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%
Run Code Online (Sandbox Code Playgroud)

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