Visual Studio安装项目包含文件夹中的所有文件

时间:2009-04-14 16:43:37

标签: visual-studio-2008 deployment installation setup-project

我们有一个安装项目,目前从不同的Visual Studio项目添加项目输出。我们想要更改打包系统并使用包含一堆部署文件的文件夹,这些文件已准备好在设置中进行部署 但这意味着我们需要逐个添加文件,并在有新文件时继续在每个版本上添加文件 我在这个question中看到我们无法添加像* .aspx这样的规则的文件 所以我正在考虑创建一个小工具,它将根据可用的文件更改vdproj文件。你能帮我看一下这个文件的格式吗?似乎每个文件都包含一些GUID 有没有人有更好的解决方案如何做到这一点?
我们还没有考虑使用不同的设置工具,我们只是寻找文件包装的简单解决方案。

10 个答案:

答案 0 :(得分:6)

要添加整个文件夹,只需打开Windows资源管理器窗口,然后将要添加的所有文件拖到文件系统视图中。

答案 1 :(得分:4)

这个问题似乎没有简单的解决方案。 我们最终更改了设置工具并使用Advanced Installer来创建设置,它有一个很好的功能,可以同步部署文件夹中的文件。

答案 2 :(得分:3)

我们遇到了同样的问题。你不能拖放..但你可以在Windows资源管理器中找到你想要的内容,复制项目(可以包括子文件夹),然后返回到VS安装程序并粘贴它们(例如应用程序文件夹)。

请注意。如果您需要创建自定义文件夹(例如c:\ html),您也可以使用此方法,但必须首先在左窗格中创建自定义文件夹(将绝对路径指定为目标),然后再次转到左窗格,糊。

此方法适用于打包一组文件夹,但不会同步具有不同内容的文件夹!如果内容在部署之间发生更改,则必须重新复制/粘贴以使安装程序文件包含所有内容!

答案 3 :(得分:1)

你能用宏来添加文件夹中的所有文件吗?

也许您可以清除安装项目中的文件(使用宏或加载项),并使用相同的方法添加文件夹中的文件。

答案 4 :(得分:1)

我终于找到了解决这个问题的真正方法。我需要的是在构建时将给定外部目录(不是项目的一部分)中的所有文件添加到安装项目中,即,如果将文件添加到该外部目录中,它将自动包含在安装程序与下一个版本。

我所做的是我在解决方案中创建了一个新项目(“类库”项目),并从中删除了所有内容:Class1.cs,AssemblyInfo.cs以及csproj文件中包含<Compile>元素的相关ItemGroups上面的文件以及包含的<Reference>元素。

然后,我添加了一个新的ItemGroup:

<ItemGroup>
  <Content Include="Path\To\The\Directory\**\*.*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>

通过这种方式,这个新项目不包含任何文件,但是将所有文件(递归,由指示目录中的\**\指示为内容文件)。

>

因此,在构建时,这些文件被视为内容文件,因此被复制到新项目的输出目录中。

那么,为什么我要做以上所有事情?正因为如此,安装项目可以选择包含另一个项目的内容文件!

因此,通过这种方法,您可以使任意外部文件成为解决方案的“一部分”,而无需实际列出它们,而是在 build time 中评估文件列表,然后从Setup项目中引用它们

答案 5 :(得分:0)

我有同样的问题。虽然不是理想的解决方案,但我有一个想法是拥有一个批处理文件来压缩文件,然后我的安装项目只是分发该zip文件。之后,您必须在安装后解压缩它们。

或者,您可以编写一个小应用程序将它们压缩为单个文件,并在应用程序第一次运行时解压缩它们。基本上是相同的解决方案,除了你自己编写,所以不需要使用第三方解压缩工具,安装过程更清洁。

我认为我实际上很快会为我的项目做后一个解决方案,因为我不打算花更多的钱购买更好的安装应用程序。

答案 6 :(得分:0)

OH不能拖放文件和文件夹到vs

中的安装目录

答案 7 :(得分:0)

以下工作完美:只需将文件夹拖放到Setup目录(使用Windows资源管理器而不是解决方案资源管理器)。然后它将添加其中的所有文件和所有子文件夹。

答案 8 :(得分:0)

您可以右键单击资源管理器中的文件夹,然后单击“复制”,然后在安装项目的文件系统视图中右键单击该文件夹,然后单击“粘贴”。拖放对我来说不起作用。

答案 9 :(得分:0)

  1. 您可以在Windows资源管理器中右键单击需要复制的文件夹,然后单击Ctrl + A或选择所有文件,然后单击“复制”。
  2. 在FileSystem编辑器中,导航到左侧。然后右键单击应用程序文件夹,然后单击添加并选择文件夹。
  3. 将名称命名为文件夹
  4. 在FileSystem编辑器的右侧,右键单击并选择Paste
  5. 该文件夹中的所有内容将在步骤2中复制到新创建的文件夹中。

有关更多信息,请参见以下链接 https://dzone.com/articles/creating-msisetup-package-c