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

pau*_*oya 4 deployment installation setup-project visual-studio-2008

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

小智 7

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


Pet*_*ter 6

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

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

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

<ItemGroup>
  <Content Include="Path\To\The\Directory\**\*.*">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  </Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

这样,这个新项目不包含任何文件,但它将所有文件(递归地,由\**\来自指定目录的 指示)引用为Content files

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

那么,为什么我做了以上所有事情?仅仅因为,安装项目有一个选项来包含来自另一个项目内容文件!

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


pau*_*oya 4

这个问题似乎没有简单的解决方案。我们最终更改了安装工具并使用高级安装程序来创建安装程序,它有一个很好的功能,可以同步文件夹内的文件以进行部署。