What happened to the "add as link" option?
为什么将现有文件添加为链接功能仅适用于托管项目?我不能在 vcproj 中使用相同的功能。是不是因为托管项目是为 msbuild 构建的,而 vcproj 文件不是?
- 因为 MS 试图通过使 VS 与 C 尽可能不可用来使 C# 看起来更有吸引力。
-
@Jerry,拜托,VC 是有史以来最好的。 MS 在 VC6 方面远远落后于所有人,现在他们拥有最好的编译器和相当好的 IDE 之一。
-
因为它专为托管项目而设计。你在 C 中需要什么?将文件添加到项目时,IDE 不会复制文件。哪里有问题?
-
编译器已经改进,毫无疑问。不过,我专门讨论了 VS(环境),而不是编译器。可悲的是,VS 6 环境比进行 C 开发以来的任何环境都要好得多。
VC 项目(无论是否托管)不需要添加为链接功能,因为 VC 项目不要求所有源文件都严格位于包含该项目的文件夹中。另一方面,C# 项目确实有这个要求。所以你可以说 VC 总是将文件作为链接添加并且从不复制它们。
您为这种灵活性付出的代价是必须创建与磁盘上的真实文件夹不对应的虚拟项目文件夹并自行管理它们。这种遗产来自 VC6,相信我很多 C# 程序员都羡慕这种灵活性。要向您展示虚拟项目文件夹和真实项目文件夹之间的区别,请切换"项目 -> 显示所有文件"。
- 好吧,C# 项目也不"要求"所有源文件都严格驻留在包含该项目的文件夹中。毕竟你可以"添加为链接",如果你用文本编辑器查看项目文件,除了路径之外,"链接"和"普通"文件之间没有区别。甚至微软也意识到项目中的虚拟结构令人困惑,并没有为 C# 实现它。
-
是的,整个问题都是关于添加为链接的。也许我应该说"默认需要"。也就是说,你必须做一些事情来打破模型。并且链接是不同的,它们在 csproj 文件 (<Link>...</Link>) 中是不同的,并且它们在解决方案资源管理器中显示为快捷方式图标。您不能对它们使用"从项目中排除"。无论如何,我个人也更喜欢 C# 真正的文件夹模型,但需要一些时间来适应。