【问题标题】:Copy folder to publish locations bin folder复制文件夹以发布位置 bin 文件夹
【发布时间】:2014-01-24 09:39:58
【问题描述】:

在 Visual Studio 解决方案资源管理器中,可以在查看文件属性时为文件设置“构建操作”和“复制到输出目录”:

我的问题是:如何告诉 Visual Studio 将完整文件夹和子文件夹/文件复制到输出目录?

如果我查看文件夹的属性,则选项不存在:

我尝试使用后期构建命令:

XCOPY "$(SolutionDir)Lib/XULRunner21_0" "$(OutDir)XULRunner21_0/" /E /I /F /Y
XCOPY "$(SolutionDir)Lib/ABCGecko.dll" "$(OutDir)" /E /I /F /Y

文件在编译之前被复制,而不是在发布期间复制,因此不起作用。

【问题讨论】:

    标签: c# asp.net vb.net visual-studio-2010 visual-studio


    【解决方案1】:

    您需要将每个文件的构建操作设置为“内容”。然后将它们分发到输出文件夹(项目中它们所在的任何子文件夹也将在输出文件夹下创建)

    【讨论】:

    • 我明白,但是对于单个文件来说是没有问题的,但是这个文件夹有很多包含文件夹和文件的子文件夹。我知道可以手动为每个文件设置“内容”,但对于 1600 个文件来说,这将是一项艰巨的工作
    • 我明白了。我注意到您已将操作设置为“无”。您可以压缩内容并让应用程序在安装后解压缩并删除 zip 文件吗?伪: if (IsFileExists("1600files.zip")) { 解压 "1600files.zip";删除“1600files.zip”}
    • 感谢您的选择,但我认为它应该是部署的一部分,而不是从代码中复制文件。
    【解决方案2】:

    您可以任意扩展您的构建过程,如下所述: http://msdn.microsoft.com/en-us/library/ms366724.aspx

    例如,在您的项目文件中:

    <Target Name="BeforePublish">
      <Exec Command="XCOPY ..." />
      <Exec Command="XCOPY ..." />
    </Target>
    

    【讨论】:

    • 鉴于他正在尝试做的事情,AfterPublish 可能更合适,因为他可能会删除发布时的所有项目。
    【解决方案3】:

    对不起:我刚刚看到您的最后一条评论(“文件是在编译前复制的,但不是在发布期间复制,所以不起作用。”),所以发布问题仍然存在。然而;我们应该能够为 BeforePublish 和 AfterPublish 目标名称扩展 Visual Studio 构建过程,以便将发布问题修复为 described here.

    这是告诉 Visual Studio 将完整文件夹和子文件夹/文件复制到输出目录的方法。

    首先将您的文件夹(这是我的文件夹 XULRunner21_0)添加到您的项目中,并将所有项目添加到您的项目中,然后转到您项目的 Properties>Build Events 并将以下命令行写入 Post-build event 命令行区域.构建解决方案后,您应该会在项目的 bin 文件夹下看到 XULRunner21_0 文件夹将创建,其中包含所有项目。

    仅此而已,希望对您有所帮助。

    xcopy /E /Y "$(ProjectDir)XULRunner21_0\*" "$(ProjectDir)$(OutDir)XULRunner21_0\"
    

    【讨论】:

      猜你喜欢
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 2016-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-10
      • 1970-01-01
      相关资源
      最近更新 更多