通过msbuild.exe发布Web项目会导致文件夹很长

时间:2012-05-31 13:58:42

标签: tfs build msbuild directory

我正在构建和发布一个单一的Web项目,这是一个很大的解决方案。 我从cmd文件启动msbuild.exe,该文件由TeamBuild进程调用:

c:\Windows\Microsoft.NET\Framework64\v4.0.30319    MSBuild.exe /p:Configuration=Release /p:DeployOnBuild=True /p:CreatePackageOnPublish=true /T:Package "%~dp0%xxx.Project1.csproj"  

在Web部署包设置下的project1.csproj的项目设置中:

将创建包的位置:$(SourcesDirectoryOfProject)\ .. \ .. \ .. \ .. \ bin \ xxx.Project1

这非常有效,但问题是,该文件夹名为" Archive" in" .. \ .. \ .. \ .. \ bin \ xxx.Project1"变得很长。我必须单击16个子文件夹,直到我在实际的Web文件,如Web.config等。 Archive文件夹下的子文件夹似乎代表临时drop文件夹的hole文件夹结构,其中首先创建用于发布的文件:

...\Archive\Content\D_C\Builds\9\TeamProjectName\BigProject\Sources\BigProject\Main\Source\SolutionName\ProjectName\obj\Release\Package\PackageTmp\bin

最后在PackageTemp下我找到了我的Web文件。与真正的问题是,对于某些文件foldernames成为长 - 所以我不能正确地删除它们和TeamBuild崩溃,因为它不能编译和做电脑的东西之前清空构建-文件夹

最好的办法是有一个选项在那里我可以告诉msbuild.exe(或者在项目的设置),它应该转储文件WebProject( - 我指的是文件文件夹:App_Code文件,垃圾桶,配置;文件:global.asax,一些xamlx和Web.config)

那么 - 如何将WebProject数据放到另一个指定路径?

祝你好运

塞巴斯蒂安

1 个答案:

答案 0 :(得分:1)

问题是错误的MSBuild.exe命令。我现在使用这个,它只将Web服务部署到特定的本地文件夹,而不需要任何IIS:

MSBuild.exe /target:Build;PipelinePreDeployCopyAllFilesToOneFolder /p:Configuration=Release;_PackageTempDir=%binfolder% "projectfile.csproj" 

它也没有这么长的文件夹名称。

相关问题