构建服务器上的MC4108错误,但Visual Studio中没有

时间:2011-05-11 01:41:10

标签: .net wpf tfs msbuild

在解决方案的精神应该是共享的,我在使用TFS构建WPF项目时遇到以下错误。该项目将在本地开发机器上以及使用VS或msbuild的构建服务器上构建正常,而不是在通过TFS构建时。

  

错误MC4108:模板的根目录   内容部分不能包含   “{0}”类型的元素。只要   FrameworkElement和   FrameworkContentElement类型是   有效的。

它指向数据模板中包含的自定义控件:

<Window.Resources>
    <DataTemplate x:Key="TabItemTemplate">
        <d:ConnectionControl />
    </DataTemplate>
</Window.Resources>

2 个答案:

答案 0 :(得分:1)

我找到的解决方法是将自定义控件包装在网格中:

<Window.Resources>
    <DataTemplate x:Key="TabItemTemplate">
        <Grid>
            <d:ConnectionControl />
        </Grid>
    </DataTemplate>
</Window.Resources>

我想这不是一个糟糕的解决方法,但问题中的标记应该有效。

答案 1 :(得分:0)

通过TFS Build构建和本地构建之间的构建错误应该没有区别,因为它们都使用MSBuild。请确保以下几点:

  1. 当您尝试在本地或在构建计算机上构建时,您是否使用了TFS构建日志中的确切MSBuild命令?
  2. MSBuild的版本是否与TFS Build使用的版本和您使用的版本匹配?
  3. 希望这会有所帮助。