Visual studio 2013 如何让MSBUILD为VS2013使用特定的PublishProfile?

Visual studio 2013 如何让MSBUILD为VS2013使用特定的PublishProfile?,visual-studio-2013,Visual Studio 2013,这个问题已经被问了很多次,并且在几个版本的VisualStudio中使问题更加复杂。到目前为止,我所做的是: 在Visual Studio 2013中创建新的Web应用程序 创建了3个“发布”配置文件Web发布到我的本地IIS,DEBUG和RELEASE分别向c:\temp\DEBUG和c:\temp\RELEASE执行“文件复制” 所有三个概要文件都是从IDE工作的。当我尝试使用MSBUILD并使用/p:PublishProfile选项时,就会出现问题。我尝试了几十种选择,但似乎没有一种符合我

这个问题已经被问了很多次,并且在几个版本的VisualStudio中使问题更加复杂。到目前为止,我所做的是:

  • 在Visual Studio 2013中创建新的Web应用程序
  • 创建了3个“发布”配置文件Web发布到我的本地IIS,DEBUGRELEASE分别向c:\temp\DEBUG和c:\temp\RELEASE执行“文件复制”
  • 所有三个概要文件都是从IDE工作的。当我尝试使用MSBUILD并使用/p:PublishProfile选项时,就会出现问题。我尝试了几十种选择,但似乎没有一种符合我指定的配置文件。我认为这应该像打电话一样简单:

    msbuild MyProject.csproj /p:DeployOnBuild=true /p:PublishProfile=RELEASE
    
    然而,它抱怨没有设置配置和CPU类型(即使配置文件中已经指定)。如果我继续将它们添加到命令行,通常会得到:

    未为项目设置OutputPath属性

    我尝试过使用/p:VisualStudioVersion=12.0/p:Configuration=XXX(即使在配置文件中设置了该选项)

    使用以下给定命令: msbuild“path\to\projectFlie\xyz.csproj”/t:Publish/p:configuration=Release Prod/p:PublishDir=“C:\temp”

    如果它抱怨项目的OutputPath属性,请执行以下操作:

  • 转到抛出错误的项目的.csproj文件
  • 查找特定配置的属性组。属性组应如下所示:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-Prod|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release-Prod\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <Prefer32Bit>false</Prefer32Bit>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    </PropertyGroup>
    
    
    pdbonly
    真的
    bin\Release Prod\
    痕迹
    促使
    4.
    假的
    真的
    
  • 确保输出路径(Release Prod)中的名称与配置中的名称完全匹配

    如果找不到配置的属性组,请添加一个。 这会解决你的问题