使VisualStudio C#在项目目录之外有文件/文件夹

时间:2009-04-04 19:09:13

标签: visual-studio

我正在尝试设置一个设置,我可以生成一个visual studio解决方案+ projectfile,它引用存储.sln和.csproj的文件夹“外部”的文件和文件夹。

(catch :)),我需要创建的新文件右键单击一个文件夹并说出要在右键单击的文件夹中生成的“新代码文件”,该文件位于外部.sln文件夹。

真的不能吗?

PS旁注:想要这样做的原因是.cs文件实际上是由不同的程序和许多其他文件一起使用的,我不想要.sln,.csproj,.ReSharper ,.suo等文件使我的目录混乱。

7 个答案:

答案 0 :(得分:7)

答案 1 :(得分:3)

对于任何感兴趣的人,可以在解决方案资源管理器中有一个“链接”文件夹,而不仅仅是解决方案根目录中出现的链接文件。在csproj / vbproj文件中包含以下内容。

  <ItemGroup>
    <None Include="..\MyFolder\*.*">
      <Link>MyFolder\A\</Link>
    </None>
  </ItemGroup>

这将包括来自项目一级的“MyFolder”目录中的所有文件。 “A”可以被调用,但必须在那里才能使文件夹出现在解决方案资源管理器中。不幸的是,使用这种技术无法从IDE添加新文件,因为它们将被添加到项目目录中的同名文件夹而不是链接目录。

答案 2 :(得分:2)

你可以阅读我的帖子,这可能有所帮助: http://ko-sw.blogspot.com/2009/06/reusing-source-files-in-multiple-visual.html

答案 3 :(得分:0)

也许fsutil hardlink create

让一个PowerShell脚本悄悄穿过你的VS项目目录并为你的“其他”目录中找到的每个.cs文件创建硬链接并不难。你可以把它设置为每小时,每晚,按需,运行。

答案 4 :(得分:0)

fsutil hardlink create == http://dotnet-snippets.de/dns/hardlink-erstellen-SID355.aspx

[DllImport("kernel32.dll", EntryPoint="CreateHardLinkA", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=true)]
private static extern long CreateHardLink(string lpFileName, string lpExistingFileName, IntPtr lpSecurityAttributes);

public void CreateHardLink(String sourcePath, string destPath) {
    CreateHardLink(destPath, sourcePath, IntPtr.Zero);
}

答案 5 :(得分:0)

我找到的解决方案是安装Visual Assist扩展,它允许添加相对于目录或当前打开文件的文件。

有关详细说明,请参阅我的previous post

答案 6 :(得分:-2)

感谢大家的投入。看起来我想要的东西在这个时间点是不可能的。长号。