从Powershell发布时如何包含项目中的所有文件

时间:2012-02-22 18:59:20

标签: visual-studio-2010 powershell msbuild

我正在尝试使用Powershell发布.Net网络应用。我想发布“此项目中的所有文件”,但它似乎只发布“只运行此应用程序所需的文件”。当我从Visual Studio 2010发布时,它可以正常工作。

这是我的命令:

& msbuild "$WebProjectFile" /verbosity:minimal "/t:ResolveReferences;_CopyWebApplication;publish" /p:Configuration=Release /p:OutDir="$PublishPath\bin\" /p:WebProjectOutputDir="$PublishPath"

我有什么想法可以做到这一点吗?

2 个答案:

答案 0 :(得分:2)

一些注意事项,因为我不确定究竟什么不起作用:   - 对于所有引用,CopyLocal设置为true   - 将特定的副本文件添加到构建脚本

<Copy SourceFiles="@(ProjectBinFiles)" DestinationFolder="$(StageBin)\%ProjectBinFiles.RecursiveDir)" />

以下是关于并非所有文件复制的类似问题:

MSBuild target _CopyWebApplication does not copy all necessary files to the bin folder

不确定是否有任何帮助。

- 亚当

[编辑:尝试撤消我的编辑]

答案 1 :(得分:0)

alistek指出我正确的方向,我最终使用Robocopy来复制丢失的文件:

& robocopy "{folder with missing files}" "$PublishPath\{folder to put missing files}" /MIR /NJH /NJS /NFL /NDL

注意:

  • 这对我来说非常合适,因为我所有丢失的文件都来自一个目录
  • /NJH /NJS /NFL /NDL个开关仅用于阻止Robocopy将其进度吐出到屏幕