Asp.net MSBUILD脚本生成解决方案,但未部署发布配置文件

Asp.net MSBUILD脚本生成解决方案,但未部署发布配置文件,asp.net,msbuild,msdeploy,Asp.net,Msbuild,Msdeploy,我已经为我的网页创建了一个发布配置文件,我可以使用VisualStudio中的web部署界面成功发布(右键单击project、deploy等)。它在本地PC上构建项目,并将文件复制到目标IIS服务器 但是现在我尝试创建一个MSBuild命令,该命令也应该这样做,但它只是构建解决方案,而不是将其复制到服务器 我的MSbuild命令如下所示,我从解决方案源目录运行它 msbuild "test.co.za.sln" p:DeployOnBuild=true /p:PublishProfile="te

我已经为我的网页创建了一个发布配置文件,我可以使用VisualStudio中的web部署界面成功发布(右键单击project、deploy等)。它在本地PC上构建项目,并将文件复制到目标IIS服务器

但是现在我尝试创建一个MSBuild命令,该命令也应该这样做,但它只是构建解决方案,而不是将其复制到服务器

我的MSbuild命令如下所示,我从解决方案源目录运行它

msbuild "test.co.za.sln" p:DeployOnBuild=true /p:PublishProfile="test.co.za"  /p:UserName="domain\test"  /p:Password="test"
我的build命令有什么问题吗?正如您在屏幕截图中看到的,它正在成功构建,但没有文件被复制。这让我想知道是否执行了发布配置文件。 我已经尝试了publishprofile路径、完整路径、扩展名的各种组合,没有,似乎没有任何东西可以复制我的文件

我的发布配置文件如下所示App\u 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>

MSDeploy
调试
http://test.co.za
真的
test.co.za
test.co.za
真的
WMSVC
域\测试
真的

编辑:这是一个我添加到解决方案中的现有经典ASP网站,它不包含“.csproj”文件,只是一个“website.publishproj”,它似乎不执行

它看起来不像您正在传递
VisualStudioVersion
属性。你应该包括这一点。根据您使用的Visual Studio版本,该值将为
11.0
12.0
、或
14.0
。您可能也应该为
配置
传递一个值,但这不是必需的。我已经在博客上写过为什么这对我们来说很重要


您可以在

上找到asp.net命令行发布的文档。看起来您没有传入
VisualStudioVersion
属性。你应该包括这一点。根据您使用的Visual Studio版本,该值将为
11.0
12.0
、或
14.0
。您可能也应该为
配置
传递一个值,但这不是必需的。我已经在博客上写过为什么这对我们来说很重要


您可以在

上找到asp.net命令行发布的文档。看起来您没有传入
VisualStudioVersion
属性。你应该包括这一点。根据您使用的Visual Studio版本,该值将为
11.0
12.0
、或
14.0
。您可能也应该为
配置
传递一个值,但这不是必需的。我已经在博客上写过为什么这对我们来说很重要


您可以在

上找到asp.net命令行发布的文档。看起来您没有传入
VisualStudioVersion
属性。你应该包括这一点。根据您使用的Visual Studio版本,该值将为
11.0
12.0
、或
14.0
。您可能也应该为
配置
传递一个值,但这不是必需的。我已经在博客上写过为什么这对我们来说很重要

您可以在

上找到asp.net命令行发布的文档,这些文档看起来像我在运行msbuild命令时从未生成过“website.publishingproj”。“不知道为什么,”赛义德说,“你可能知道吗

我必须在我的解决方案旁边创建一个名为“after.solutionName.sln.targets”的目标文件,并从以下答案复制代码:


它现在可以从我的msbuild脚本中正确发布。

运行msbuild命令时,似乎从未生成我的“website.publishingproj”。“不知道为什么,”赛义德说,“你可能知道吗

我必须在我的解决方案旁边创建一个名为“after.solutionName.sln.targets”的目标文件,并从以下答案复制代码:


它现在可以从我的msbuild脚本中正确发布。

运行msbuild命令时,似乎从未生成我的“website.publishingproj”。“不知道为什么,”赛义德说,“你可能知道吗

我必须在我的解决方案旁边创建一个名为“after.solutionName.sln.targets”的目标文件,并从以下答案复制代码:


它现在可以从我的msbuild脚本中正确发布。

运行msbuild命令时,似乎从未生成我的“website.publishingproj”。“不知道为什么,”赛义德说,“你可能知道吗

我必须在我的解决方案旁边创建一个名为“after.solutionName.sln.targets”的目标文件,并从以下答案复制代码:



它现在可以从我的msbuild脚本中正确发布。

感谢@Sayed的回复!我是你博客的超级粉丝!我尝试了VisualStudioVersion和配置,但都没有成功。我忘了提到,这是我添加到解决方案中的现有ASP经典网站,它不包含“.csproj”文件。因此,有一个不同的问题:我可以从msbuild命令脚本部署网站吗?在该脚本中,网站未绑定到项目文件?(我只有一个网站。publishproj)我创建了一个演示C#项目,可以用脚本成功发布。但当把它添加为“现有网站”时,我想我的问题可能与这个问题相同。不确定这是否是正确的解决方案ThoughThank@Sayed感谢您的回复!我是你博客的超级粉丝!我尝试了VisualStudioVersion和配置,但都没有成功。我忘了提到,这是我添加到解决方案中的现有ASP经典网站,它不包含“.csproj”文件。因此,有一个不同的问题:我可以从msbuild命令脚本部署网站吗?在该脚本中,网站未绑定到项目文件?(我只有一个网站。publishproj)我创建了一个演示C#项目,可能会成功
<!--?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>