【问题标题】:Preparing source code to be released准备发布源代码
【发布时间】:2011-06-21 03:50:40
【问题描述】:

这里有点新手问题。

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

如果没有,谁能指点我一份清单或类似的东西?

【问题讨论】:

  • 我发现一个很好的经验法则是“发布源代码控制下的任何内容(源代码控制元数据除外)”
  • 如果你的代码在 SVN 下,你可以简单地使用 export。
  • 我目前没有运行任何源代码控制。 Express 也有类似的东西吗?
  • @RobinHood70:您必须使用外部的东西,但请参阅下面的手动答案。
  • @leppie: 如果它在 Mercurial 下,你可以使用hg archive

标签: c# release


【解决方案1】:

我不知道内置方法(尽管我从未寻找过);包含的内容无疑会因项目而异,并且以自动化的方式正确处理会很棘手。以下是包含和排除内容的一般列表(在我脑海中):

包括什么

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

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

什么不包括

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

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

这应该涵盖您项目目录中的大部分文件——如果我遗漏了什么,请告诉我!

【讨论】:

  • 说实话,我正在查看所有三个响应并将它们组合起来,但我选择了最受欢迎的一个并将其标记为已接受的答案。感谢大家的所有提示!
【解决方案2】:

这是我通常做的事情。

删除以下所有目录:

  • bin
  • 对象

删除以下文件(递归):

  • *.suo
  • *.gpstate
  • *.vssscc
  • *.csproj.user

这应该会给你一个非常干净的项目来压缩。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-02
      • 2021-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多