准备要发布的源代码

Rob*_*d70 4 c# release

这里有点新手问题.

在VC#2010 Express中,是否有一种简单的方法来准备要发布的源代码?换句话说,删除任何不应发布的文件,如密钥文件,用户特定设置等.

如果没有,有人能指出我的清单或那种性质的东西吗?

Cam*_*ron 5

我不知道内置的方式(虽然我从来没有找过一个); 包含的内容无疑会因项目而异,并且以自动化的方式进行操作会非常棘手.这是一个包含和排除内容的一般列表(在我的头顶):

包括什么

我发现一个好的经验法则是"包括源代码控制下的任何内容(源代码控制元数据除外)".基本上:

  • 所有源代码(C#文件)
  • 解决方案文件(.sln)和所有项目文件(*.csproj)
  • 您的代码依赖于构建和/或运行的任何库(DLL)
  • 您的项目期望在构建或运行时出现的任何其他文件(例如app.config)
  • 文档(您已经获得的任何文档,以及指示如何构建/运行项目的某种README文档)
  • 卫星源文件(例如安装程序脚本,自定义工具等)

什么不包括在内

  • 项目的二进制版本(即bin\Debug,bin\Release和obj文件夹) - 二进制文件应单独发布
  • 源控件元数据(.svn文件夹,.hg文件夹等)
  • 每用户开发设置和数据(例如ReSharper文件夹,*.suo文件,*.user文件)
  • 智能感知文件(*.ncb)

密钥文件是一个有趣的案例 - 如果您使用一个文件来创建强名称的程序集,那么您可能想要也可能不想将该密钥文件发布给公众.一方面,它使某人更容易对代码进行更改并对生成的程序集进行签名,但另一方面,有人可能会对您的代码进行恶意更改,然后对程序集进行签名.有关是否释放密钥文件的更完整讨论,请参阅此问题.

这应该涵盖项目目录中的大多数文件 - 如果我错过了什么,请告诉我!