使用 MSBUILD 和/或 MSDEPLOY (.NET 3.5) 从命令行部署

Deploy from command line using MSBUILD and or MSDEPLOY (.NET 3.5)

我正在尝试通过 Jenkins 作业部署我的网站。

我正在使用以下命令行语句,但没有成功:

"C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe" myproj.csproj /p:DeployOnBuild=true

我也试过:

"C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe" myproj.csproj  /p:Configuration=Debug /p:OutputPath="obj\debug" /p:DeployIisAppPath="Default Web Site/demo" 

None 虽然我的项目编译正确,但仍然有效。

当我去 C:\inetpub\wwwroot 时,那里没有什么新鲜事。我希望我的网站启动 运行 并且可以在本地主机中通过我的浏览器访问。

您可以使用 MSDeploy 通过以下 MSBuild 参数部署您的 Web 应用程序

/p:Configuration=release
/p:DeployOnBuild=True 
/p:DeployTarget=MSDeployPublish
/p:MsDeployServiceUrl=https://targetServer:8172/MsDeploy.axd
/p:DeployIisAppPath=MySite 
/p:AllowUntrustedCertificate=True
/p:Username=
/p:AuthType=NTLM

然而,MSDeploy 已被证明是对我们来说更好的解决方案。我们使用 MSBuild 创建一个 MSDeploy 包,然后我们可以使用 MSDeploy.exe 将该包部署到许多环境。构建一次,部署多次。以下是 WebDeploy 的概述,可能会有帮助:

http://dotnetcatch.com/2016/02/25/the-anatomy-of-a-webdeploy-package/

确保在 MSBuild 命令后添加正确的参数,例如 /p:DeployOnBuild=true /p:PublishProfile="XXXProfile",但最重要的是将 MSBuild.exe 路径添加到 %PATH% 环境变量.

MSBuild.exe 路径添加到您的 %PATH% 系统环境变量中,您唯一需要做的就是调用: msbuild myproject.csproj /p:DeployOnBuild=true /p:PublishProfile="MyProfile",其中 MyProfile 是生成的带有 Visual Studio 的发布配置文件,可以在 MyProject\Properties\PublishProfiles 文件夹下找到。