DLL中不包含新类(在分支上添加)

时间:2013-11-19 10:07:10

标签: c# visual-studio-2010 msbuild teamcity

我有一个包含名为TestService的类的类库。我使用Visual Studio的“Add - > Class”菜单添加了它。在csproj文件中,它看起来很好

<ItemGroup>
    ...
    <Compile Include="Implementation\TestService.cs" />
    ...
</ItemGroup>

我无法在任何地方找到任何'Exclude'语句,并且它在Visual Studio中都可以正常构建。但是在MS Build操作期间(在TeamCity上),当我使用dotPeek查看生成的DLL时,我的类不存在(并且我的构建失败)。

该类已添加到分支上,并在构建期间合并到主干中。合并的.csproj文件看起来不错。

我尝试使用默认命名空间(由VS2010选择,匹配文件夹结构),即“ TimetablingPhase2.Service.Implementation ”。同一文件夹中的所有其他类都具有名称空间“ TimetablingPhase2.Service ,我也尝试过(另一位开发人员最初编写了此代码)。

任何人都可以建议为什么它不包含在我的DLL中?以下是添加的课程的屏幕截图。

Screenshot of solution

由于

1 个答案:

答案 0 :(得分:0)

轻松修复:我交换了构建任务的顺序。而不是订单:

1)清洁。 2)合并。 3)编译。

我现在这样做:

1)合并。 2)清洁。 3)编译。

很高兴对此予以纠正,但我认为这就是原因:

  1. 要编译的类列表在第一个时加载到MSBuild中 执行build target(Clean)。
  2. 然后我合并了代码,它改变了要编译的类列表(添加了额外的类)。
  3. 但是因为那个列表已经加载了,我的新课程 (从那时起 >在csproj文件中列出)从未被选中 起来。
  4. 首先执行合并确保列表是最新的 MSBuild读取它。