visual-studio - vs添加文件夹




如何将现有的目录树添加到Visual Studio中的项目中? (7)

这个问题很简单。 我不是在Visual Studio中创建文件夹,而是在文件系统上为我的项目创建一个目录结构。 如何在项目中包含所有文件夹和文件,保持结构?

如果我在名为Services的文件夹中添加“现有文件”,然后导航到目录结构中的文件.. Services> AccountManagement> CreateAccount.cs,它将显示在Visual Studio中,如下所示:Services> CreateAccount.cs。 我不想要这个。

我已经制定了一个完整的目录结构,因为我模仿我们的客户开发人员使用相同的组织结构。 如何将所有文件夹和文件添加到Visual Studio中的项目中? 或者我必须做大多数微软用户所做的工作,并“忍耐”并通过Visual Studio重新创建每个文件夹?


复制和粘贴

要添加文件夹,所有子目录和文件,我们也可以复制和粘贴。 例如,我们可以:

  1. 在文件夹上的Windows资源管理器中右键单击,然后在包含许多文件和文件夹的文件夹上复制。

  2. 然后在Visual Studio解决方案资源管理器中,右键单击目标文件夹并单击粘贴。

  3. 可选添加到TFS; 然后在顶部文件夹中右键单击并检入TFS以检入所有子文件夹和文件。


在Visual Studio 2013中,右键单击某个文件夹时无法使“Include in Project”工作。 做了什么工作就是展开文件夹,选择所有文件,然后选择“包含在项目中”。 这是非常乏味的,因为你必须一个接一个地做每个文件夹(但至少你可以一次完成每个文件夹中的所有文件),并且它似乎存储文件路径(你可以通过查看文件的属性并查看“相对路径”选项。)

我希望使用它来在Visual Studio Installer项目中部署一些数据文件,并且它似乎可以拾取包含的文件并保留它们的路径。


在Visual Studio 2017中,您可以在解决方案视图文件夹视图之间来回切换。 我认为这是一个更好的选择,因为它会保持解决方案更清洁。 我用它来编辑.gitignore,.md文件等。


您也可以将文件夹从Windows Explorer拖放到Visual Studio解决方案窗口中。


您需要将您的目录结构放在您的项目目录中。 然后点击解决方案资源管理器工具箱顶部的“显示所有文件”图标。 之后,添加的目录将显示出来。 然后您需要选择该目录,右键单击并选择“包含在项目中”。


我想我找到了一种方法来编译包含=“。\ Code ***。cs”。我想要的是在代码文件夹下递归地包含代码。

这是项目文件示例。

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="15.0" DefaultTargets="BuildTarget">
    <PropertyGroup>
        <OutputType>Library</OutputType>
    </PropertyGroup>
    <PropertyGroup>
        <StartupObject />
    </PropertyGroup>
    <PropertyGroup>
        <RootNamespace>Autogen</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
        <Compile Remove="@(Compile)" />
        <Compile Include=".\Code\**\*.cs" />
    </ItemGroup>
    <Target Name="BuildTarget">
        <Message Text="Build selected" Importance="high"/>
    </Target>
</Project>

要扩展雨辰的答案 ,你可以包含文件和路径作为链接。 这与添加现有项目不同,因为它不会在项目的文件夹结构中创建额外的副本。 如果您希望在许多不同的地方使用一个规范文件夹/文件等,但您只想维护一个版本/副本,这很有用。

以下是可以添加到*.csproj文件以创建链接的示例

<Compile Include="$(Codez)\z.Libraries\Common\Strings\RegexExtensions.cs">
    <Link>Helpers\RegexExtensions.cs</Link>
</Compile>

<Compile Include="..\..\z.Libraries\MoreLINQ\MoreLinq\ExceptBy.cs">
    <Link>Helpers\ExceptBy.cs</Link>
</Compile>

<Content Include="C:\Codez\Libs\Folder\OtherFolder\**\*.*">
    <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

$(Codez)是我定义的Windows环境变量,您可以使用内置环境变量以相同的方式。

最后一个示例组是我在最终输出中需要的一组内容文件。 有关详情,请参阅https://.com/a/11808911/492以及其他答案和链接。

更多MSBuild信息, https://msdn.microsoft.com/en-us/library/bb629388.aspx访问https://msdn.microsoft.com/en-us/library/bb629388.aspx







visual-studio