的 复制&糊 强> 。
要添加文件夹,所有子目录和文件,我们还可以复制和粘贴。 例如,我们可以:
右键单击该文件夹上的Windows资源管理器,然后单击包含许多文件和文件夹的文件夹。
然后在Visual Studio解决方案资源管理器中,右键单击目标文件夹并单击粘贴。
可选添加到TFS;然后在顶部文件夹中右键单击并签入TFS以签入所有子文件夹和文件。
您需要将目录结构放在项目目录中。然后单击解决方案资源管理器工具箱顶部的“显示所有文件”图标。之后,添加的目录将显示出来。然后,您需要选择此目录,右键单击,然后选择“包含在项目中”。
我想我用Compile Include =“。\ Code ***。cs”找到了一种方法。 我想要的是在我的Code文件夹下递归包含代码。
这是项目文件示例。
<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>
据我所知,在VS2010中执行此操作的唯一方法类似于拖放方法。右键单击要添加项目的解决方案。应用程序菜单将有一个add ...项目。打开它,您会发现其中一个选项是将现有项目添加到解决方案中。
在打开的对话框中,导航到包含解决方案的项目文件的文件夹,然后选择它。作为导入该项目文件的一部分,VS还将导入整个目录,并假设任何属于该项目的下级目录。
由于这确实需要现有的项目文件,因此在将树转换为项目之前导入目录树是不可能的。
要扩展 雨辰的回答 ,您可以包含文件和路径作为链接。这与添加现有项目不同,因为它不会在项目的文件夹结构中创建额外的副本。如果您希望在许多不同的地方使用一个规范文件夹/文件等,但您只想维护它的一个版本/副本,这将非常有用。
以下是您可以添加到的内容的示例 *.csproj 文件来创建链接
*.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环境变量,您可以以相同的方式使用内置的环境变量。
$(Codez)
最后一个示例组是最终输出中需要的一堆内容文件。看到 https://stackoverflow.com/a/11808911/492 和其他答案&amp;在那里链接了更多。
更多MSBuild信息 https://msdn.microsoft.com/en-us/library/bb629388.aspx
您也可以从中拖放文件夹 Windows资源管理器 到Visual Studio解决方案窗口。
我找不到满意的答案,所以我想出了自己。
如果您想要将外部源代码添加到项目中并且不想复制整个代码,这就是您的答案。我对其他gits有很多依赖,如果不是每分钟都会每小时更新一次。我无法每小时复制同步。这是你需要做的。
假设这是结构:
/根/ projA / SRC
/根/ projA /包括
/根/ projB / SRC
/根/ projB /包括
/根/ yourProj / SRC
/根/ yourProj /包括
为projB做同样的事情。 现在,您的解决方案/项目中存在外部/现有项目。 VS会将它们编译在一起。 这是一个技巧。由于projA和projB是项目下的虚拟文件夹,编译器可能找不到projA / includes。
如果没有找到projA / includes,则右键单击该项目,选择“属性”。
有一点需要注意,如果有重复的包含/头文件,“头文件”中的“从项目中排除”并不真正起作用。这是VS中的一个错误。
在Visual Studio 2017中,您可以在它之间切换 解决方案视图 和 文件夹视图 来来回回。我认为这是一个更好的选择,因为它将使解决方案更加清洁。我用它来编辑.gitignore,.md文件等。
您可以使用符号链接。这使得修改一个项目中的文件在另一个项目中修改它(因为它实际上是同一个文件)。
去做这个:
这有它的缺点和缺陷,但我有时会使用它来处理需要不同名称的重复库。
编辑Anoop: 添加到Visual Studio的步骤:
这些是我遵循的步骤,适用于几个不同的项目。
在Visual Studio 2013中,右键单击文件夹时无法使用“包含在项目中”。什么工作是扩展文件夹,选择所有文件,然后选择“包含在项目中”。这是非常乏味的,因为你必须逐个完成每个文件夹(但至少你可以一次完成每个文件夹中的所有文件),它似乎存储文件路径(你可以通过查看文件的属性来看到这一点)并查看“相对路径”选项。)
我希望使用它来在Visual Studio Installer项目中部署一些数据文件,它似乎拿起包含的文件并保留它们的路径。