Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 包含文件夹中所有文件的Visual Studio安装项目_Visual Studio 2008_Deployment_Installation_Setup Project - Fatal编程技术网

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

Visual studio 2008 包含文件夹中所有文件的Visual Studio安装项目,visual-studio-2008,deployment,installation,setup-project,Visual Studio 2008,Deployment,Installation,Setup Project,我们有一个安装项目,它当前添加了来自不同VisualStudio项目的项目输出。我们希望更改打包系统,并使用一个包含一组部署文件的文件夹,这些文件准备在安装程序中部署。 但这意味着我们需要一个接一个地添加文件,并在有新文件时在每个版本上不断添加它们。 我在这里看到,我们无法添加带有*.aspx之类规则的文件。 因此,我正在考虑创建一个小工具,根据可用文件更改vdproj文件。你能帮我弄一下这个文件的格式吗?似乎有一些guid与包含的每个文件关联。 有人有更好的解决方法吗 我们现在还没有考虑使用不

我们有一个安装项目,它当前添加了来自不同VisualStudio项目的项目输出。我们希望更改打包系统,并使用一个包含一组部署文件的文件夹,这些文件准备在安装程序中部署。
但这意味着我们需要一个接一个地添加文件,并在有新文件时在每个版本上不断添加它们。
我在这里看到,我们无法添加带有*.aspx之类规则的文件。
因此,我正在考虑创建一个小工具,根据可用文件更改vdproj文件。你能帮我弄一下这个文件的格式吗?似乎有一些guid与包含的每个文件关联。
有人有更好的解决方法吗

我们现在还没有考虑使用不同的安装工具,我们只是想为文件打包寻找一个简单的解决方案。

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


另外,您也可以清除安装项目上的文件(使用宏或外接程序),然后使用相同的方法将文件添加到文件夹中。

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

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

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

或者,您可以编写一个小应用程序,将它们压缩到单个文件中,并在应用程序首次运行时解压缩它们。基本上是相同的解决方案,只是您自己编写,因此无需使用第三方解压工具,而且安装过程更简洁


我想我实际上很快就会为我的项目采用后一种解决方案,因为我也不想为更好的安装应用程序花大钱。

哦,不,你可以将文件和文件夹拖放到vs

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

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

我们遇到了相同的问题。您不能拖放..但可以转到上下文在Windows资源管理器中,复制项目(可以包括子文件夹),然后返回VS Installer并粘贴这些项目(例如,应用程序文件夹)

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


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

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

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

然后,我添加了一个新的项目组:

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

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

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

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

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

  • 您可以在windows资源管理器中的文件夹(需要复制的文件夹)内单击鼠标右键,然后单击Ctrl+A或选择所有文件,然后单击“复制”
  • 在文件系统编辑器中,导航到左侧的文件夹,然后右键单击应用程序文件夹,单击添加并选择文件夹
  • 指定文件夹的名称
  • 在文件系统编辑器的右侧,右键单击并选择“粘贴”
  • 在步骤2中,文件夹的所有内容都将被复制到新创建的文件夹中
  • 有关更多信息,请参阅以下链接

    这可能是一个解决方案。我对VStudio上的宏不太了解,所以有两个问题:-更改宏以浏览文件系统有多容易?-我可以从命令行运行宏,这样我就可以自动运行它吗?宏与其他任何函数一样,在IDE上执行操作。因此,可以添加浏览功能。关于command line,我不知道,我也不这么认为,因为它位于IDE中。你也可以在评论中说同样的话。似乎其他人说“只是复制、拖放等”并不真正理解这里的问题。问题是包含外部文件夹的实际内容,而这些内容不包含在任何项目中