开源.NET项目 - 强名称密钥和团队城市

时间:2014-06-03 16:05:16

标签: .net msbuild teamcity strongname

我正在构建一个开源Visual Studio插件(无耻插件pMixins)。因为它是一个Visual Studio插件,它必须被强烈命名,所以我有一个snk文件。我使用GitHub作为源存储库,但我不想将snk密钥文件发布给公众,所以我没有将文件添加到GitHub。

我正在尝试将Team City的实例设置为构建服务器。 Team City正在专用机器上运行。

如何将我的snk文件复制到Team City?我不容易获得文件系统访问权限,所以我更喜欢 not 将snk文件复制到计算机上。有没有办法将文件上传到Web界面,或以某种方式序列化它,让Team City根据需要为文件补充文件?

3 个答案:

答案 0 :(得分:2)

为什么在构建服务器上没有密钥副本?这很简单:

  • 在项目文件%SnkFilePath%
  • 中使用system / project / etc环境变量($(SnkFilePath)
  • 添加条件不为空,不为空
  • 添加条件仅在发布模式下签名

请参阅MSDN


如果您确实想在构建/签名之前临时将其保存到磁盘,则需要编写自定义构建任务。我不会搞砸它。

答案 1 :(得分:2)

从(How to configure TeamCity with private files?) 您可以创建一个单独的私有存储库(例如,在BitBucket上)来存储snk文件,然后将另外的VCS Root添加到Team City配置中。

答案 2 :(得分:0)

您可以将SNK视为依赖项,并将其打包在NuGet包中(到本地网络订阅源或网络共享)。在解决方案中引用该包,并在构建时使用TC安装它。

完全没有经过测试,但它可能是一个整洁的解决方法。