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

问题描述 投票:4回答:10

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

visual-studio-2008 deployment installation setup-project
10个回答
6
投票

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


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

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


4
投票

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


3
投票

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

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

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


1
投票

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

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


1
投票

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

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

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

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

这样,这个新项目不包含任何文件,但它引用所有文件(递归地,由指示目录中的\**\指示)作为内容文件。

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

那么,为什么我要做以上所有?只是因为,Setup Project有一个选项可以包含来自另一个项目的内容文件!

因此,通过这种方式,您可以将任意外部文件作为解决方案的“部分”而不实际列出它们,在构建时评估文件列表,然后从安装项目中引用它们。


0
投票

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

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

我想我实际上很快就会为我的项目做后一个解决方案,因为我不打算为更好的安装应用程序支付大笔费用。


0
投票

OH没有你可以将文件和文件夹拖放到vs中的安装目录


0
投票

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.