我已经为我的网页创建了一个发布配置文件,我可以使用Visual Studio中的Web部署界面成功发布(右键单击项目,部署等)。它在我的本地PC上构建项目,并将文件复制到目标IIS服务器。
但是现在我正在尝试创建一个MSBuild命令,它应该这样做,但它只是构建解决方案,而不是将其复制到服务器。
我的 MSbuild命令看起来像这样,我从解决方案源目录运行它
msbuild "test.co.za.sln" p:DeployOnBuild=true /p:PublishProfile="test.co.za" /p:UserName="domain\test" /p:Password="test"
我的构建命令有什么问题吗?正如您在屏幕截图中看到的那样,它正在成功构建,但没有复制文件。这让我想知道发布配置文件是否完全执行。 我尝试了各种发布配置路径,完整路径和扩展的组合,没有,似乎没有任何东西可以复制我的文件。
我的发布资料如下所示 App_Data \ Publishprofile \ test.co.za.pubxml
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
<SiteUrlToLaunchAfterPublish>http://test.co.za</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<MSDeployServiceURL>test.co.za</MSDeployServiceURL>
<DeployIisAppPath>test.co.za</DeployIisAppPath>
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<UserName>domain\test</UserName>
<_SavePWD>True</_SavePWD>
</PropertyGroup>
</Project>
编辑:这是一个现有的经典ASP网站,我添加到解决方案中,它不包含&#34; .csproj&#34;文件,只是一个&#34; website.publishproj&#34;,似乎无法执行
答案 0 :(得分:2)
看起来你没有传递VisualStudioVersion
属性。你应该包括那个。根据您使用的Visual Studio版本,该值可以是11.0
,12.0
或14.0
。您应该传递Configuration
的值,但这不是必需的。我在http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx上写了一篇关于为什么这很重要的博客。
您可以在http://www.asp.net/mvc/tutorials/deployment/visual-studio-web-deployment/command-line-deployment
找到asp.net命令行发布的文档答案 1 :(得分:1)
看起来像我的&#34; website.publishingproj&#34;在运行msbuild命令时永远不会构建。不知道为什么,@ Sayay你或许知道吗?
我必须在我的解决方案旁边创建一个目标文件,名为&#34; after.solutionName.sln.targets&#34;并复制此答案中的代码:https://stackoverflow.com/a/15138373/1184603
<!--?xml version="1.0" encoding="utf-8"?-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Deploy Website" AfterTargets="Build">
<Message Text="Starting Website deployment" Importance="high">
</Message>
<MSBuild Projects="$(MSBuildProjectDirectory)\MyWebs\website.publishproj"
BuildInParallel="true" />
</Target>
</Project>
现在可以从我的msbuild脚本正确发布。