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

标签 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

不起作用,因为:

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

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

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

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

我的解决方案

我正在使用 PyCharm,它好多了。

最佳答案

如果没有其他方法,您可以在 .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>'

关于python - 如何将现有文件夹结构添加到我的 Visual Studio 项目(python 工具)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681852/

相关文章:

python - 按日期时间对象对 numpy 数组进行排序

python - 在 Alembic 迁移中使用 SQLAlchemy ORM : how do I?

matplotlib - PTVS 在 python 调试交互中使用 matplotlib 绘制 pandas 数据帧和系列

python - seaborn 条形图上的黑线是什么意思?

asp.net-mvc - asp.net mvc 3 - 在项目属性中没有 "SSL Enabled"的选项

c# - 在GridView/DetailsView中显示外键数据

c# - 为什么我在这段代码中的输出参数上得到代码分析 CA1062?

python - Python Tools For Visual Studio 中的构建前和构建后步骤

python - 每 2000 个字符在最近的管道中对文本进行分区