准备要发布的源代码

时间:2011-02-04 05:30:03

标签: c# release

这里有点新手问题。

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

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

3 个答案:

答案 0 :(得分:5)

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

包括什么

我发现一个好的经验法则是“包括源代码控制下的任何东西(源代码控制元数据除外)”。基本上是:

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

什么不包括

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

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

这应该涵盖项目目录中的大多数文件 - 如果我遗漏了任何内容,请告诉我!

答案 1 :(得分:3)

这是我通常做的事情。

删除以下所有目录:

  • OBJ

删除以下文件(递归):

  • *。锁
  • *。gpstate
  • *。vssscc
  • *。csproj.user

这应该给你一个非常干净的项目来拉链。

答案 2 :(得分:1)

要遵循的一条好规则是.gitignore文件的规则列表。请参阅this answer以获得良好的起点。