我有一个巡航控制(v1.5.726)安装与几个机器上build立的各种项目。 每台机器构build任何configuration运行的项目,如果构build成功,则将输出的副本放置在Web服务器上,以便在内部访问。 我有一个包含“黄金”(已知工作)的CC.net安装的SVN分支,所以当我想要添加另一个生成机器时,我所需要做的就是将SVN分支同步到该机器,并创build一个batch file, ccnet.exe然后引用.ccnet.config文件,其中包含每台机器负责构build的项目列表。
昨天我想出了如何将CC.net设置为Windows服务,但是我似乎无法像使用ccnet.exe一样将任何parameter passing给ccservice.exe。 我已经能够得到ccservice.exe加载计算机的具体configuration的唯一方法是通过添加一行到ccservice.exe.config文件引用回机器configuration。 例如
<add key="ccnet.config" value="C:CruiseControlConfigMachine-Name.ccnet.config"/>
现在,考虑到我有多个构build机器和configuration文件通过SVN存储的事实 – 将ccservice.exe.config提交回SVN会导致问题,因为它引用回单个机器的configuration文件。
我的问题是 – 有没有办法通过命令行参数(或某种方式告诉ccservice哪个configuration文件看)到ccservice.exe而不是通过ccservice.exe.config文件? 我试过ccservice.exe /? 但我只是看到popup消息,说你必须使用IntstallUtil.exe作为服务安装CC.net。
我正在使用CC.net版本:1.5.7256.1生成计算机正在运行Windows 7企业版。 英特尔酷睿i7-2600K cpu。 16GB RAM。
让我知道你是否需要任何进一步的信息。
谢谢Richie
你可以使用环境变量吗? COmpuTERNAME已经在那里了。
<add key="ccnet.config" value="C:CruiseControlConfig%COmpuTERNAME%.ccnet.config"/>
也许它会扩大变量,我还没有尝试过。
你可以尝试的一件事是在ccservice.exe.config之外的文件中有这个特定的值。 请参阅此问题以供参考: appsettings文件属性是否覆盖了app.config中的内容?
我会认为你的ccservice.exe.config会看起来像
.... <appSettings file="local.config"> <add key="service.name" value="CCService" /> ... other existing keys in appSettings ... <appSettings>
然后local.config看起来像
<appSettings> <add key="ccnet.config" value="C:pathtomachine-name.ccnet.config" /> </appSettings>
在设置新机器时这样做,您需要创建local.config和machine-name.ccnet.config,但是您的ccservice.exe.config不需要在机器之间切换。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。