Teamcity .Net 项目,在 Visual Studio 中构建时的条件项目参考

Teamcity .Net project, conditional project reference when building in Visual Studio

我在 TeamCity 中有构建链,其中依赖的工件被复制到主项目的 /bin 目录。项目文件引用工件。一切正常。

我想要的是当 building/debugging 来自 Visual Studio 时允许包含项目文件,而不是二进制引用。我已经尝试了一些方法,例如在项目文件中使用条件,但是有没有一种干净利落的方法来处理这个问题?

可能有解决的部分。 可以使用几种引用类型的projs。

  <ItemGroup Condition=" '$(ReferencedDACPAC)' == '' ">
    <ProjectReference Include="..\OmniUS\OmniUS.sqlproj">
      <Name>OmniUS</Name>
      <Project>{26075a62-f6b0-40c3-baa2-b9a9829da3c4}</Project>
      <Private>False</Private>
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
    </ProjectReference>
    <ProjectReference Include="..\OmniUS_Finance_Jural\OmniUS_Finance_Jural.sqlproj">
      <Name>OmniUS_Finance_Jural</Name>
      <Project>{c8b0aee7-c2a4-4370-8451-13b455bb5363}</Project>
      <Private>False</Private>
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup Condition=" '$(ReferencedDACPAC)' == 'true' ">
    <ArtifactReference Include="..\DacPacs\OmniUS.sqlproj.dacpac">
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
    </ArtifactReference>
    <ArtifactReference Include="..\DacPacs\OmniUS_Finance_Jural.sqlproj.dacpac">
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
    </ArtifactReference>
  </ItemGroup>

当我在 TeamCity 中构建时,我将 ReferencedDACPAC 作为构建中的 "System" 变量发送,因此引用 "ArtifactReference"。当我在 VisualStudio 中构建时,没有 var 并且引用发生为 "ProjectReference".