为什么VS2010允许“包含在项目中”的概念?

时间:2011-11-23 20:38:20

标签: c# visual-studio

我还在学习VS2010如何看待这个世界的基础知识。显然,您可以选择“包含”项目中的文件。我有点困惑:如果文件是版本控制的,并且文件在项目目录中,那么它是否应该隐含地“包含”在项目中?如果没有,那么项目目录中的版本控制文件不应该包含在项目中的用例是什么?

===加法===

根据我到目前为止得到的答案,也许我应该重新提出一个问题:文件被“包含”在项目中意味着什么?

7 个答案:

答案 0 :(得分:5)

不,您不希望碰巧在源代码管理中包含的项目目录中的随机文件。

答案 1 :(得分:5)

项目需要了解文件才能进行编译和分发。仅仅因为你有一个源代码控制的文件,并不意味着如果项目没有意识到它将被编译。

此外,您可能希望将文件包含在分发包的一部分中。对于我们使用web app gallery分发的Web项目,我们经常这样做。

相反,您可以拥有版本控制的文档或SQL脚本,但不希望它们成为项目的一部分。

编辑:为了回应您的更新,文件包含在项目中的含义是该文件实际上已添加到.csproj.vbproj文件,将在编译和/或分发期间使用。如果文件是Content或者需要Compile,VS会区分它。通过单击解决方案资源管理器中的文件并查看Build Action属性,可以看到这一点。

答案 2 :(得分:3)

我们有时会在项目文件夹和版本控制下放置文档(pdf)或图纸/原理图,但是在visual studio项目中你不需要它们(特别是当它们没有被分发时,因为它们仅供内部使用) )。

答案 3 :(得分:1)

如果文件与项目相关但在解决方案中不一定需要,则从项目中排除文件会很有用。

示例 如果我需要为我正在编写的应用程序提供一些测试XML;通常是从WCF服务中提取它,将该文件保存在我使用IO获取XML进行测试的开发环境的目录中会很有用,但我不一定要在我的解决方案中使用它这是源控制的。

答案 4 :(得分:1)

当您从项目中排除某个文件时,不再编译或嵌入该文件,那么当您想要再次包含该文件时,您可以在不丢失设置的情况下这样做。

答案 5 :(得分:0)

如果你是将文件(包含想要在项目中使用的有用类)复制到项目的文件夹中,然后您将看到......没有。您必须检查解决方案资源管理器的“显示所有文件”选项,并且可以看到复制的文件,但它仍然“灰显”。您可以选择菜单项包含在项目中,该文件将集成到您的项目中,并且还会添加源控件的挂起更改(添加)。 Visual Studio不会将项目文件夹中可以找到的所有文件自动包含到项目中 - 这是一个很好的功能。

答案 6 :(得分:0)

我的一位同事向我解释了一个版本控制文件不应该是项目的一部分的场景。这是个主意:

  • 开发人员编写了一些新代码。
  • 代码是实验性的,并不打算成为正常构建的一部分。
  • 从构建中排除文件的最简单方法是不将其包含在项目中,但仍然对其进行版本控制。
  • 这样,该文件可以与其他开发人员共享,但不会破坏构建。