MsBuild命令忽略发布配置文件中的位置

时间:2018-11-20 10:29:54

标签: c# asp.net-mvc-4 msbuild publish

我有一个带有asp.net mvc c#站点的VS 2012解决方案,并且正在通过msbuild命令使用它的发布配置文件。在我的本地计算机上,文件被发布到发布配置文件中指定的目录,但是在服务器上,它们将转到项目bin目录。

我正在通过MSBuild运行以下内容:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\WebSites\EMS.sln  /p:Configuration=Release /p:DeployOnBuild=true /p:VisualStudioVersion=14.0  /p:AllowUntrustedCertificate=true /p:PublishProfile=C:\WebSites\EMSMVC\Properties\PublishProfiles\EMS_Auto.pubxml

这是发布的个人资料:

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <Configuration>Release</Configuration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeFoldersFromDeployment>
      Images
    </ExcludeFoldersFromDeployment>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <publishUrl>C:\Apps\NEW_PUBLISH</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>

我们正在使用.NET Framework 4.5;我的PC上的IIS版本是7.5; Visual Studio 12(高级版)。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是通用解决方案,但是我在现场看到了类似的东西,使用了它,就解决了我们的问题:正如我提到的,由于用于本地编辑和部署的Visual Studio是VS 2012或版本11,我必须从本地C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web复制服务器上位置的文件夹中的Web:C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \(只有文件夹WebApplications),现在工作正常。