TeamCity - 使用2个svn文件夹

时间:2013-08-20 14:38:23

标签: c# visual-studio svn teamcity visualsvn

我正在尝试在TeamCity中构建一个项目,其中包含.csproj文件正在使用的一些DLL,但我一直收到错误(CS0246),因为他们无法访问它们所在的文件夹。

我在我的VCS根目录中添加了2个SVN(Subversion - VisualSVN)文件夹,但我是否需要在.csproj文件中编辑以编辑目录..它以“.. \ assemblies \”的格式保存它在TeamCity服务器上,但在本地(当退缩等)时它是“.... \ common \ assemblies”

我们的其他项目正在使用DLL,这就是为什么它们位于单个文件夹中而不是我们正在处理的项目中。

这有点难以解释。如果从上面不够清楚的话,我会尝试再详细说明。

<Reference Include="OpenCvSharp.MachineLearning">
  <HintPath>..\..\Common\assemblies\OpenCvSharp.MachineLearning.dll</HintPath>
</Reference>

应该是

<Reference Include="OpenCvSharp.MachineLearning">
  <HintPath>..\assemblies\OpenCvSharp.MachineLearning.dll</HintPath>
</Reference>

在teamcity服务器上正常工作。然而,这不是一个选项,因为我们将无法在本地调试等,而无需一直更改路径。

“C:\ TeamCity \ buildAgent \ work \ fdbaf6ce1c990aa8 \”然后所有SVN文件夹都保存在那里,然后省略了我们项目的“主”文件夹和包含DLL的文件夹

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用build configurations有条件地引用相同的DLL,但是在不同的路径上。在.csproj中:

<Reference Include="OpenCvSharp.MachineLearning">
  <HintPath Condition="'$(Configuration)' == 'Debug'">..\..\Common\assemblies\OpenCvSharp.MachineLearning.dll</HintPath>
  <HintPath Condition="'$(Configuration)' == 'TeamCity'">..\assemblies\OpenCvSharp.MachineLearning.dll</HintPath>
</Reference>

右键单击解决方案资源管理器 -> 配置管理器... 中的解决方案文件,然后单击下拉列表,可以在Visual Studio中添加新的构建配置对于有效的解决方案配置并选择&lt;新...&GT;

Adding the new TeamCity build configuration

缺点是您必须编辑.csproj文件以包含上述条件。