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

在Visual Studio中,我们可以“添加为链接”在解决scheme中的其他项目中添加指向文件的链接。

有没有办法做到这一点整个文件夹,以便项目B中的整个文件夹将在项目B中可见,而不需要手动链接到该文件夹​​中的新项目?

正如这篇博文所述,这是可能的。

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

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

在VS2012及更高版本中,您可以使用alt键将文件夹拖动到另一个项目。 这与手动添加每个文件作为链接相同,但速度更快。

upd :如果使用VS2013更新2(与共享项目引用pipe理器 )或VS2015,请考虑使用共享项目 。

一个除了从莫答案。 和马库斯的评论,如果你链接的内容项目,你将需要包括文件扩展名:

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

对不起,额外的答案,我没有足够的声誉来添加评论。

关于原始查询的一部分有一个链接的文件夹出现在IDE中,这是有可能实现这一点,所以在解决scheme资源pipe理器中有一个文件夹里面的所有链接的文件,而不是所有的文件出现在根解决scheme。 要做到这一点,还需要增加:

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

这将包括解决scheme资源pipe理器中名为MyData的新文件夹中的链接目录中的所有文件。 上面的代码中的'A'可以被称为任何东西,但必须在那里才能出现文件夹。

如果你想添加一个文件夹作为参考,你不想编译它使用:

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

没有办法为整个文件夹做,但是如果两个项目在同一个解决scheme中,您可以使用VSCommands 2010同时复制几个文件作为链接。 有关更多信息,请参阅此videohttp://www.youtube.com/watch?v=fa1M0NGXqMg或访问visualstudiogallery.msdn.microsoft.com/en-us/d491911d-97f3-4cf6-87b0-6a2882120acf?lc=1033

破解shell并添加一个符号链接。

runaspipe理员然后

 mklink /d LinkToDirectory DirectoryThatIsLinkedTo 

BAM符号链接!

/ d指定目录链接。

在Vista中开箱即可使用。 可以回溯到XP。

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

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