为 VisualStudio 项目中的文件夹“添加为链接”

在 VisualStudio 中,我们可以“添加为链接”来添加到解决方案中另一个项目中的文件的链接。

是否有任何方法可以对整个文件夹进行此操作,从而使项目 A 中的整个文件夹在项目 B 中可见,而无需手动链接到该文件夹中的新项目?

69745 次浏览

正如这个 博客文章所说,这是可能的。

<ItemGroup>
<Compile Include="any_abs_or_rel_path\**\*.*">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>

但请注意,这些文件不会被复制。

除了 莫的回答。和 Marcus 的评论之外,如果你要链接内容项,你需要包含文件扩展名:

<ItemGroup>
<Compile Include="any_abs_or_rel_path\**\*.*">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Compile>
</ItemGroup>

关于原始查询中有一个链接文件夹出现在 IDE 中的部分,这是有可能实现的,因此在解决方案资源管理器中有一个文件夹,其中包含所有链接文件,而不是所有文件都出现在解决方案的根目录中。为了达到这个目的,包括:

  <ItemGroup>
<Compile Include="..\anypath\**\*.*">
<Link>MyData\A\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Compile>
</ItemGroup>

这将把链接目录中的所有文件包含在名为 MyData 的解决方案资源管理器中的新文件夹中。上面代码中的“ A”可以被称为任何东西,但是必须存在才能显示文件夹。

在 VS2012和更高版本中,可以按下 Alt键将文件夹拖到另一个项目中。这与手动添加每个文件作为链接是一样的,但是更快。

更新日期 : 如果您使用的是 VS2013更新2(带有 共享项目参考管理器)或 VS2015,请考虑使用 共享项目

取出 shell 并添加一个符号链接。

那就是管理员了

mklink /d LinkToDirectory DirectoryThatIsLinkedTo

BAM 符号链接!

/d 指定目录链接。

在 Vista 中工作,可以移植到 XP。

文档在此: http://technet.microsoft.com/en-us/library/cc753194%28WS.10%29.aspx

对于那些不熟悉符号链接的人来说,它本质上是指向另一个文件或目录的指针。它对应用程序是透明的。磁盘上的一个副本,几种解决方法。您还可以创建一个“硬链接”,它不是指向另一个地址的指针,而是同一个文件在 NTFS 中的实际文件 ID 条目。

注意: 如注释中所述,这只能在创建符号链接的计算机上使用,而不能在类似 git 的版本控制系统中使用。

如果您想添加一个文件夹作为引用,但又不想编译它,请使用:

<Content Include="any_path\**\*.*">
<Link>folder_in_B_project\%(RecursiveDir)%(FileName)%(Extension)</Link>
</Content>

即使有这么多的解决方案,我也花了一些时间去理解它。在这里,我会试着解释得更详细一点。

我需要链接到整个文件夹,所以我的最终结果是:

<ItemGroup>
<Content Include="..\Gym.Management.Api\TestFolder\**\*.*">
<Link>TestFolder\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>

地点:

  1. ..\Gym.Management.Api\TestFolder\表示包含我要链接的文件夹的其他项目的路径
  2. <link>标签中的 TestFolder\是我当前项目中要链接的最终(目标)文件夹

提示: 当您不确定如何获得正确的包含路径时,那么在当前项目 right click on project->click Add->Existing item->navigate to one of those files from folder you want to link-> instead of Add, press the dropdown arrow next to it->click Add as link中。 该链接插入到 .csproj文件中,从中可以提取包含路径。