如何将现有的文件夹结构添加到我的Visual Studio项目中(Python工具)?

23

这个问题本质上与以下问题相同:

如何在Visual Studio中将现有的目录树添加到项目中? 如何在Visual Studio中“添加现有项”整个目录结构?

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

看起来另一个用户也遇到了完全相同的问题。

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

但是http://xkcd.com/979/又来了。

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

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

将解决方案放入SVN中以便在提交之前添加新文件夹到解决方案不是一个选项。该解决方案在源代码的不同区域中受到控制。

建议的解决方案:

https://dev59.com/EHRC5IYBdhLWcg3wKtv2#392477

无法工作,原因如下:

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

建议解决方案:

https://dev59.com/JHVD5IYBdhLWcg3wL4mM#57778

无法工作的原因:

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

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

我认为这是由于VS会尝试在拖动到的目录中创建该文件夹的副本。如果我将文件夹完全移出项目(比如移到桌面),然后将其拖到正确位置的解决方案资源管理器中,它就会显示为项目中的文件夹。在指定的拖放位置上,也会创建一个具有相同名称和内容的文件夹副本。
因此,拖放文件夹到解决方案资源管理器上似乎会在磁盘上的目标位置创建该文件夹的副本。如果该位置已经有了同名文件夹,则该文件夹会被导入为文件。 我的解决方案 我使用PyCharm代替,它更好。

1
PTVS 1.5 RC有一个新选项:“从现有代码创建新项目”。 - Markus Jarderot
如果“显示所有文件”按钮不在“解决方案资源管理器”中,那么“项目”菜单中是否有“显示所有文件”选项? - Luke Woodward
1
嗨,我在VS2012和2012 Ultimate中尝试了这个,运行良好,然后在express版本中尝试,但不起作用,也许这是特定版本的限制? - GMasucci
1
http://pytools.codeplex.com/workitem/112 已经得到解决,这意味着您将在当前版本中获得“显示所有文件”功能。 - Zooba
“从现有代码创建新项目” 对我很有效。 - Leo
显示剩余3条评论
3个回答

6
如果其他方法都不起作用,你可以在.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>'

3
显示所有文件功能可用。显示所有文件在项目菜单中。
项目->显示所有文件

2

这对我在Visual Studio 2013上起作用,我不知道其他Visual Studio版本是否适用。

在安装Visual Studio的Python工具(PTVS)之后,我在这里找到了它

  1. 打开Visual Studio,导航到“文件”->“新建”->“项目”(或按住Ctrl+Shift+N) enter image description here

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

  3. 在“从现有Python代码创建新项目”的向导上,按照提示进行操作,并根据需要进行所有必要的设置,或者只需单击“完成”即可。 enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接