Visual studio 2012 在执行web发布时,如何防止msbuild丢失文件?
我有一个解决方案,其中包含几个具有依赖关系的项目。 当我构建网站项目时,bin文件夹包含许多子文件夹 有些来自AjaxControlToolkit.dll,有些来自依赖项项目生成的文件夹。 我还将生成PDB文件并将其复制到bin文件夹中 一切正常 如果使用关联菜单进行发布(发布到文件系统) 我得到相同的文件生成 一切正常 当我使用msbuild进行web发布时 我没有为依赖项获取PDB文件(但为网站获取) 我没有将文件夹复制到bin文件夹中 这会破坏很多东西 我分两步完成MSBuild 1->在源目录中编译 此时,所有文件和文件夹都存在于源bin文件夹中 2->发布到新文件夹 此时,从属文件和文件夹不会跨服务器传输 根据进一步调查: 项目中的obj\Release\Package\PackageTmp\bin不包含这些文件 obj\Release\CustomerPortal.csproj.FileListAbsolute.txt会列出这些文件 批处理文件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->在
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目标文件夹。您知道问题出在哪里吗?我也有同样的问题,不幸的是没有。我刚刚开始将复制步骤添加到我正在使用的批处理文件中