Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 拖放不使用“的.cs文件”;添加为链接";在VisualStudio中_Visual Studio - Fatal编程技术网

Visual studio 拖放不使用“的.cs文件”;添加为链接";在VisualStudio中

Visual studio 拖放不使用“的.cs文件”;添加为链接";在VisualStudio中,visual-studio,Visual Studio,在将源文件或整个源代码树拖放到C#项目中时,是否有方法使用“添加为链接” 目前,将源文件树拖到C#项目上会导致Visual Studio将所有文件复制到我的解决方案文件下的镜像树 这可以通过添加为链接选项来避免,如下图所示。但是,对于大型树或目录中的某些文件已经是项目的一部分时,它会变得单调乏味 我在工具->选项中搜索过,在网页上搜索过,在拖放时还持有各种神奇的组合键,但都没有用 我很想编写一个脚本,只对.cs文件进行全局处理,并在.csproj文件上运行正则表达式。我知道NAnt、Prem

在将源文件或整个源代码树拖放到C#项目中时,是否有方法使用“添加为链接”

目前,将源文件树拖到C#项目上会导致Visual Studio将所有文件复制到我的解决方案文件下的镜像树

这可以通过添加为链接选项来避免,如下图所示。但是,对于大型树或目录中的某些文件已经是项目的一部分时,它会变得单调乏味

我在工具->选项中搜索过,在网页上搜索过,在拖放时还持有各种神奇的组合键,但都没有用


我很想编写一个脚本,只对.cs文件进行全局处理,并在.csproj文件上运行正则表达式。我知道NAnt、Premake和其他解决方案,但我想要一些轻量级的解决方案。

可能不是您想要的,但有一次我有两个.NET应用程序,我想共享很多源文件,所以我将两个Visual Studio解决方案放在同一个目录中!它实际上是有效的,尽管我想关于这种方法可以说很多


否则,共享代码的最佳方式是将共享代码放置在单独的程序集中,尽管这需要相当多的额外工作,如果不是这样写的话。

如果找不到解决方案,也可以手动将目录绑定到项目上一次,让项目在加载时自动找到该目录中的所有.cs文件

通过以下方式更改MSBuild文件,可以轻松完成此操作:

<ItemGroup>
  <Compile Include="SomeDirectory\**\*.cs"/>
</ItemGroup>


这将获取SomeDirectory中的所有.cs文件,并将它们包含到项目中。如果经常有很多文件添加到项目中,这是非常有用的。但是,它可能会在某些添加无用文件的机器上崩溃。这就是为什么我只建议在当前工作区中不可编辑的外部项目上使用该选项。

虽然这个问题已经得到了回答,但我认为我应该提供另一种方法,因为我在考虑是否可以使用拖放在Visual Studio中添加链接文件时发现了这个问题,而不是繁琐的“添加项目”对话框。虽然这里的答案不是我想要的,但我发现自己:


拖放时按住CTRL+SHIFT将创建链接文件。此外,仅按住CTRL键将创建副本,但不会删除源文件。

在VS2015上,按住ALT键同时创建链接文件,如CTRL+SHIFT