2014-11-21 42 views
0

您好,我有一個託管包,它提供了自定義C++構建工具鏈的代碼。我有一個加載一些自定義屬性的自定義平臺Toolset.targets:實現IDynamicEnumValuesProvider的DynamicEnumProperty提供程序類不會被Visual Studio 2013加載

<ItemGroup> 
    <PropertyPageSchema Include="$(MSBuildThisFileDirectory)projprops.xml" /> 
</ItemGroup> 

projprops.xml如下所示:

<?xml version="1.0" encoding="utf-8"?> 
<Rule Name="MyGeneralProperties" 
    Order="9" 
    DisplayName="MyRule" 
    Description="General" 
    PageTemplate="generic" 
    xmlns="http://schemas.microsoft.com/build/2009/properties"> 
    <Rule.Categories> 
     <Category Name="General" DisplayName="General" Description="General" /> 
    </Rule.Categories> 
    <Rule.DataSource> 
     <DataSource Persistence="UserFile"/> 
    </Rule.DataSource> 

    <DynamicEnumProperty Name="BuildMachine" DisplayName="Build Machine" Category="General" EnumProvider="BuildMachines" Visible="True" Description="The machine that building and debugging will take place on."/> 
</Rule> 

我在同一個DLL作爲包和它在我枚舉提供商看起來是這樣的:

[Export(typeof(IDynamicEnumValuesProvider))] 
[DynamicEnumCategory("BuildMachines")] 
public class BuildMachineEnumProvider : IDynamicEnumValuesProvider 
{ 
    // the implementation 
} 

BuildMachineEnumProvider實例永遠不會被運行時創建然而屬性的VC項目屬性身在何方,它應該牛逼顯示出來O操作。當通過[ProvideAutoLoad(UIContextGuids80.SolutionExists)]加載解決方案時,應用程序會按照應該加載的方式加載。根據我讀過的所有內容,當包裝被加載時,MEF應該識別我的枚舉提供程序類,並且其他所有應用程序都可以正常工作 - 但事實並非如此。

回答

相關問題