小编Kin*_*ger的帖子

CloudConfigurationManager不从app.config中获取ApplicationSettings

我有一个包含一些Azure助手类的库.在这些帮助程序类中,我获取了Azure帐户名和密钥等设置.在Azure中运行时,这些设置将从云配置文件(cscfg)中获取.一切正常.

为了在Azure之外对这些类进行单元测试(特别是RoleEnvironment),我在单元测试项目中创建了相同变量名的设置.这些实际上保存在app.config文件中,并通过设置部分进行编辑,该部分位于我的测试项目的属性部分下.我没有创建自己的从web.config/app.config设置中抽象云配置设置的方法,而是决定使用CloudConfigurationManager类.但是,当我运行我的单元测试时,我的设置都没有被选中,所以我只是得到了空值.但是,如果我将app.config文件更改为使用下面"appSettings"格式的设置,那么我会获得有效值.这样做的缺点是我无法再使用visual studio中的设置编辑器页面编辑我的设置.

所以我的问题是我做错了什么,或者这是云配置管理器的限制,它只能拿起手动添加的appSettings而不是使用编辑器添加的applicationSettings?

<appSettings>
    <add key="Foo" value="MySettingValue"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

上述作品,而以下不是:

<applicationSettings>
    <ComponentsTest.Properties.Settings>
      <setting name="Foo" serializeAs="String">
        <value>MySettingValue</value>
      </setting>
    </ComponentsTest.Properties.Settings>  
</applicationSettings>
Run Code Online (Sandbox Code Playgroud)

c# configuration-files azure

18
推荐指数
1
解决办法
8347
查看次数

TeamCity从版本文件中读取和更新版本号

我们正在使用TeamCity作为CI服务器,我们一直在考虑如何实现一种安全版本化版本的方法(即人为错误的机会最小),但这也需要尽可能少的努力.到目前为止,以下似乎是最合乎逻辑的:

  1. 创建版本文件(或使用assemblyinfo.cs).版本信息将采用格式....此文件将被检入我的VCS.
  2. 运行TeamCity构建
  3. TeamCity从步骤1读取版本文件,挑选每个单独的数字并设置相应的TeamCity构建参数(因此我可以在以后使用它们来创建nuget包和标签)
  4. TeamCity自动递增最终的"构建计数"值.
  5. TeamCity将新版本信息保存回版本文件(使用更新的"构建计数")
  6. 然后,TeamCity将运行其余的构建步骤,构建文件,运行单元测试,设置正确的程序集版本等.
  7. TeamCity最终将文件检入VCS

我们认为以这种方式做事的好处是我们需要修复旧版本,然后版本号将是正确的,TeamCity可以简单地使用旧版本文件,并像往常一样递增构建计数.这确实假设我们正在更新我们的主要/次要/补丁版本.这将很好地与TeamCity 7.1即将发布的功能很好地配合使用,该功能允许您通过自定义构建对话框选择要构建的分支.

从我到目前为止已经阅读的内容来看,这些操作应该可以在TeamCity中进行,但是我们正在寻找最简单的根本来解决这个问题,因为我们只是一个两人装,我们负担不起投资大成为Nant或powershell专家的时间,但却发现它可能无法满足我们的需求.

所以我想总结一下我的问题如下:

  1. 我提议的可能吗?
  2. 如果是,那么考虑到我对Nant,powershell等的有限经验,最好的工具是什么(对于那些命令行和脚本经验扩展到简单的DOS操作和一些VBScript的人来说,这是最快的学习方法)

任何帮助是极大的赞赏.

.net teamcity version-numbering

7
推荐指数
1
解决办法
9166
查看次数