.net 关于TeamCity的几个问题

.net 关于TeamCity的几个问题,.net,continuous-integration,teamcity,.net,Continuous Integration,Teamcity,我想为一个大项目安装一个CI服务器已经有相当一段时间了,但没有时间,我上面的人也不太关心它,他们只是说“这很有趣,可以节省我们一些时间”,但从来没有为它做过任何事 我在CC.NET方面有一些经验,但只是在小项目中,为了学习它的基础知识。最近有更多的空闲时间,所以决定尝试一下TeamCity,并为这个大项目做好准备 然而,在处理参考资料时,我会遇到两个问题: 1) 在处理多个项目时,我尽量不制作包含所有项目的大型解决方案(加号并不总是可能),因为我也处理SVN,我使用指向其他项目中已编译程序集的相

我想为一个大项目安装一个CI服务器已经有相当一段时间了,但没有时间,我上面的人也不太关心它,他们只是说“这很有趣,可以节省我们一些时间”,但从来没有为它做过任何事

我在CC.NET方面有一些经验,但只是在小项目中,为了学习它的基础知识。最近有更多的空闲时间,所以决定尝试一下TeamCity,并为这个大项目做好准备

然而,在处理参考资料时,我会遇到两个问题:

1) 在处理多个项目时,我尽量不制作包含所有项目的大型解决方案(加号并不总是可能),因为我也处理SVN,我使用指向其他项目中已编译程序集的相对路径(例如:…..\Library A\trunk\Library\bin\release\LibraryA.dll)。它对我和参与项目的同事一直都很有效,但我很难让TC项目接受它,我应该如何设置依赖关系

2) 其中一个库由另一家公司制作,SVN存储库与他们共享。他们最近不得不添加对Oracle DB的访问权限,并与Oracle数据提供程序合作,后者似乎与GAC中注册的程序集合作,但在构建解决方案时,它会输出另一个类似的程序集,但具有不同的程序集版本(如果我错了,请纠正我的错误,我一直与内置Oracle提供商合作,因为它已经足够了)。在我的公司方面,我们使用“输出程序集”,项目编译并运行良好,但我们以前必须更改引用,并且无法在存储库中修改项目文件,是否有解决方法

感谢您的回复。

对于1)当您的项目由TC构建时,您可以使用Svn从其他项目中获取程序集和其他依赖项

您还可以将TC设置为检测外部更改的时间,并使用最新版本生成项目,或者将TC项目链接在一起,以便它们按顺序生成

我花了很多时间在我们的地方安装和运行一台CI服务器,它真的得到了回报。它仍然需要一点时间来让事情顺利进行,但它会认真地建议您启动并运行一些东西

抱歉,无法帮助您完成2)。

通过修改引用属性并将其设置为不查找特定版本来解决#2。另一家公司似乎已经接受了

仍然没有时间检查VCS签出规则中的#1。

对于1)您可以为项目设置
ReferencePath
,并指向包含已编译程序集的目录

在TC配置中,我们将所有TeamCity依赖项加载到名为“Dependencies”的子目录中,并将编译器的
ReferencePath
设置到该目录

使用MSBuild Runner,这非常简单:

在den
.proj
中,您需要为构建定义一个属性(我们称之为
ReferencePath


谢谢你的回复,学到了一些新东西

昨天,我可以在TC上玩得更多一些,了解更多关于VCS结账规则的知识,并发现,1可以很容易地用工件来解决(使用这个名称,我一开始不知道它们是什么),所以我正在使用它,我的项目到目前为止没有任何问题


你们认为这种方法怎么样?库给我的问题是同一项目的“核心”库,所以我已经为它们设置了一个项目。

谢谢你的回复,但是,这不是我想要的,因为我们没有将二进制文件上载到存储库。我不懂外景,所以学习新东西总是很好的,再次感谢。我已经阅读了有关VCS签出规则的内容,尽管我仍然想知道这是否是我要寻找的。很高兴知道这一点,我还了解到,您可以向引用添加条件,仅用于运行目标。将此答复标记为答案,因为它解决了我的问题,没有进一步的评论或答复。检查其他答案是否有用。
<PropertyGroup>
    <ReferencePath>$(MSBuildProjectDirectory)\Dependencies\</ReferencePath>
</PropertyGroup>
<MSBuild Projects="$(ProjectFiles)" Properties="Configuration=Release;ReferencePath=$(ReferencePath)" Targets="Rebuild" />
<ItemGroup>
    <ProjectFiles Include="$(MSBuildProjectDirectory)\**\*.csproj" />
</ItemGroup>