【问题标题】:TeamCity - using 2 svn foldersTeamCity - 使用 2 个 svn 文件夹
【发布时间】:2013-10-23 19:38:16
【问题描述】:

我正在尝试在 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 的文件夹

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

【问题讨论】:

    标签: c# visual-studio svn teamcity visualsvn


    【解决方案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 中添加新的构建配置,方法是右键单击 Solution Explorer -&gt; Configuration Manager... 中的解决方案文件,然后单击 strong>活动解决方案配置: 并选择

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

    【讨论】:

    • 我会试试这个并在之后报告:)
    猜你喜欢
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多