如何将现有文件夹结构添加到我的visual studio项目(python工具)?

时间:2012-10-01 22:12:05

标签: python visual-studio-2010 ptvs

这个问题基本上与这些问题相同:

How do I add an existing directory tree to a project in Visual Studio? How to "Add Existing Item" an entire directory structure in Visual Studio?

除了解决方案对我不起作用。

看起来其他用户遇到了完全相同的问题

http://pytools.codeplex.com/discussions/249455

http://xkcd.com/979/再次袭来。

我正在使用Visual Studio 2010和Visual Studio的Python工具。

在此项目中,用户创建新文件夹和代码并将其提交给SVN。另一个用户将更新SVN,新的文件和文件夹将显示在Windows资源管理器中。然后,用户需要一种简单的方法将这些文件夹和文件添加到解决方案中。

将解决方案放在SVN中,这样添加的文件夹就可以添加到解决方案中,然后提交不是一个选项。该解决方案在与源不同的区域内进行控制。

建议的解决方案:

https://stackoverflow.com/a/392477/606660

无效,因为:

解决方案资源管理器中的“显示所有文件”按钮不会显示。

建议的解决方案:

https://stackoverflow.com/a/57778/606660

无效,因为:

当我将文件夹拖到解决方案资源管理器窗格上时,删除文件夹的位置会影响解决方案嵌套的位置。如果它被丢弃在错误的文件夹中,它将显示为具有预期名称和预期内容的文件夹。这非常接近我们想要的,除了它在错误的文件夹中(因为我故意将它放在错误的文件夹中)。如果文件夹被拖动到正确的位置,它将显示为带有感叹号的文件。当您双击“文件”时,它会显示

"The item <folder name> does not exist in the project directory.  It may have been moved, renamed, or deleted"

我相信这是因为VS会尝试在您将其拖动到的目录中创建该文件夹的副本。如果我将文件夹完全移出我的项目(比如桌面),然后将其拖到适当位置的解决方案资源管理器中,它将显示为项目中的文件夹。该文件夹的副本也在磁盘上由drop指定的位置创建,具有相同的名称和内容。

因此,将文件夹拖放到解决方案资源管理器中似乎会在您放弃解决方案时在解决方案中定位的磁盘上创建该文件夹的副本。如果该位置已具有该名称的文件夹,则该文件夹将作为文件导入。

我的解决方案

我正在使用PyCharm,它更好。

3 个答案:

答案 0 :(得分:5)

如果没有其他工作,您可以在.pyproj - 文件中手动添加文件和文件夹。格式很简单:

<ItemGroup>
    <Compile Include="File1.py" /> <!-- List of files relative to .pyproj folder -->
    <Compile Include="test\file2.py" />
</ItemGroup>
<ItemGroup>
    <Folder Include="test\" /> <!-- List of folders -->
</ItemGroup>

如果需要,您可以添加更多<ItemGroup>元素,如果愿意,可以混合文件和文件夹。

生成XML的脚本:

import os

def visit(folder):
    for fn in os.listdir(folder):
        filename = os.path.join(folder, fn)
        _, ext = os.path.splitext(fn)
        if os.isdir(filename):
            folders.append(filename)
            visit(filename)
        elif ext.lower() == '.py':
            files.append(filename)

files = []
folders = []

visit('.')

print '<ItemGroup>'
for fn in files:
    print '  <Compile Include="' + fn + '"/>'
print '</ItemGroup>'

if folders:
    print '<ItemGroup>'
    for fn in folders:
        print '  <Folder Include="' + fn + '\\"/>'
    print '</ItemGroup>'

答案 1 :(得分:2)

显示所有文件有效。显示所有文件在项目菜单中。

项目 - &gt;显示所有文件

答案 2 :(得分:1)

这在2013年的visual studio中对我有用,我不知道这是否适用于其他视觉工作室迭代。

安装Python Tools for Visual Studio (PTVS), which I found here

  1. 打开visual studio,导航到FILE-&gt; NEW-&gt; PROJECT(或按住Cntrl + shift + N) enter image description here

  2. 在新项目对话框中,浏览到现有的python项目目录。在项目名称字段中输入项目的名称。取消选中为解决方案创建目录(如果您不想创建新的项目目录)。并选择&#34;从现有的Python代码&#34;选项并单击“确定”。 enter image description here

  3. 在&#34;从现有Python代码创建一个新项目&#34;向导,按照提示进行所需的所有必要设置,或者单击“完成”。 enter image description here