Visual studio 2012 在执行web发布时,如何防止msbuild丢失文件?

Visual studio 2012 在执行web发布时,如何防止msbuild丢失文件?,visual-studio-2012,msbuild,visual-studio-2013,Visual Studio 2012,Msbuild,Visual Studio 2013,我有一个解决方案,其中包含几个具有依赖关系的项目。 当我构建网站项目时,bin文件夹包含许多子文件夹 有些来自AjaxControlToolkit.dll,有些来自依赖项项目生成的文件夹。 我还将生成PDB文件并将其复制到bin文件夹中 一切正常 如果使用关联菜单进行发布(发布到文件系统) 我得到相同的文件生成 一切正常 当我使用msbuild进行web发布时 我没有为依赖项获取PDB文件(但为网站获取) 我没有将文件夹复制到bin文件夹中 这会破坏很多东西 我分两步完成MSBuild 1->在

我有一个解决方案,其中包含几个具有依赖关系的项目。 当我构建网站项目时,bin文件夹包含许多子文件夹 有些来自AjaxControlToolkit.dll,有些来自依赖项项目生成的文件夹。 我还将生成PDB文件并将其复制到bin文件夹中

一切正常

如果使用关联菜单进行发布(发布到文件系统) 我得到相同的文件生成 一切正常

当我使用msbuild进行web发布时 我没有为依赖项获取PDB文件(但为网站获取) 我没有将文件夹复制到bin文件夹中

这会破坏很多东西

我分两步完成MSBuild 1->在源目录中编译 此时,所有文件和文件夹都存在于源bin文件夹中 2->发布到新文件夹 此时,从属文件和文件夹不会跨服务器传输

根据进一步调查:

项目中的obj\Release\Package\PackageTmp\bin不包含这些文件

obj\Release\CustomerPortal.csproj.FileListAbsolute.txt会列出这些文件

批处理文件

SET MSBuild="C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"
SET targetFolder=C:\Temp\Customer_Build
SET configuration=Release


%MSBUILD% "%targetBuildFolder%\Customer.CustomerPortal.sln" /t:Build /p:Configuration=%configuration%;BuildProjectReferences=true;Platform="Any CPU" >> "%targetFolder%\build_all.log"


%MSBUILD% "%targetBuildFolder%\CustomerPortal\CustomerPortal.csproj" /t:WebPublish /p:PublishUrl=%targetBuildFolder%\_B_MyCustomer\;VisualStudioVersion=11.0;WebPublishMethod=FileSystem;Configuration=%configuration%;BuildProjectReferences=true;DeployOnBuild=True;PackageAsSingleFile=False;PrecompileBeforePublish=False;ExcludeGeneratedDebugSymbol=False;Platform="AnyCPU" >> "%targetFolder%\build_all.log"
发布配置文件XML

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>True</ExcludeApp_Data>
    <publishUrl>C:\Temp\Customer_Build\Deploy\MyCustomer</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
  </PropertyGroup>
</Project>

文件系统
调试
任何CPU
真的
真的
C:\Temp\Customer\u Build\Deploy\MyCustomer
真的
有人知道我可以: 1.指定一个命令行选项,该选项将允许MSBUILD具有与配置文件相同的行为 或
2.使用配置文件,但能够覆盖发布文件夹和配置

我今天遇到了类似的问题。我们正在将网站项目发布到本地文件夹,然后使用Wix安装程序项目对其进行打包。我们希望保留pdb以启用远程调试场景。最后,我们在项目中添加了一个复制任务,以便在打包安装程序之前将pdb从bin文件夹移动到publish目标文件夹。您知道问题出在哪里吗?我也有同样的问题,不幸的是没有。我刚刚开始将复制步骤添加到我正在使用的批处理文件中