通过MSBuild发布网站

时间:2014-08-07 06:33:24

标签: web-deployment msdeploy

我试图在命令提示符下通过msbuild发布一个asp.net网站,但我没有成功。

我尝试创建一个新的Web应用程序并执行下面的命令,它可以工作。

C:\ Windows \ system32> msbuild.exe" C:\ VisualStudio 2012 \ Projects \ HelloWorldSample \ HelloWorldSample \ HelloWorld \ HelloWorldSample.csproj" / p:DeployOnBuild = true / p:PublishProfile =" HelloDeploy"

但我的问题是,在网站上我没有.csproj文件。这就是为什么我无法执行上述命令的原因。

所以请任何人帮助我如何部署网站。

感谢。

1 个答案:

答案 0 :(得分:-1)

如果您的网站没有csproj项目文件,则很可能是仅包含您网站文件的目录。 You can convert it to a Web Application(从而获取csproj文件)或直接使用msdeploy生成可部署的包,然后使用msdeploy将其部署到您的网站。当你运行msbuild /p:DeployOnBuild

时,这实际上会发生在幕后

创建msdeploy可部署网站you can use the following snippet

msdeploy.exe 
  -verb:sync 
  -source:iisApp="C:\development\mywebsite\the-website-dir" 
  -dest:package="C:\temp\mywebsite-package.zip" 
  -declareParamFile:"C:\development\mywebsite\parameters.xml" 

您需要在parameters.xml文件中创建一个站点名称参数,该参数将与压缩网站项目一起打包

<?xml version="1.0" encoding="utf-8" ?>
<parameters>
<!-- 
This file contains (among others) references to web.config fields (xpath) 
which will be 'parameterized' on package before deploy. The actual values will then be filled in based on the given deploy environment.
-->
  <parameter name="IIS Web Application Name" tags="IisApp">
    <parameterEntry kind="ProviderPath" scope="iisApp" match="" tags="IisApp" />
  </parameter> 
</parameters>

这将生成一个可部署的msdeploy包,您可以使用以下命令将其上载到IIS:

msdeploy.exe -source:package=c:\temp\mywebsite-package.zip -dest:auto,computerName=https://mysite.example.com:8172/MsDeploy.axd,userName=USERNAME,password=PASSWORD,authtype=Basic, -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:example-setParameters.xml -allowUntrusted

与setParameter文件一起

<?xml version="1.0" encoding="utf-8" ?>
<parameters>
  <setParameter name="IIS Web Application Name" value="mysite.example.com" />
</parameters>
相关问题