1

私はしばらくの間これに困惑しており、他に何を試すべきかわかりません。

基本的に、製品を簡単に作成できるようにするために、Visual Studio のプロジェクト テンプレートを作成する SDK とインストーラーを作成しました。このプロジェクト テンプレートには、.xxProj と .yyProj という 2 つのカスタム プロジェクト タイプが含まれています。これらは両方とも、SDK に付属する特定のコンパイラとターゲット ファイルにリンクされています。

プロジェクトは Visual Studio でインストールして正しく動作すると正常に表示されますが、何らかの理由で、両方の個々のプロパティ ページを正しく実装したと信じているにもかかわらず、プロパティ ウィンドウ/ページに何も含まれていません。

ProjectPackage では、次のオブジェクトとプロパティ タグを提供しました。

[ProvideObject(typeof(xxPropertyPage))]
[ProvideObject(typeof(yyPropertyPage))]
[ProvideProjectFactory(typeof(yyProjectFactory), null, "yy Project Files (*.yyproj);*.yyproj", "yyproj", "yyproj", ".\\NullPath", LanguageVsTemplate = yyProjectFactory.PROJECT_TYPE)]
[ProvideProjectFactory(typeof(xxProjectFactory), null, "xx Project Files (*.xxproj);*.xxproj", "xxproj", "xxproj", ".\\NullPath", LanguageVsTemplate = xxProjectFactory.PROJECT_TYPE)]

他のプロパティ ページはどちらも COM で表示され、SettingsPage を実装しています。プロパティ ページの取得メソッドもプロジェクト ノードに追加しました。

protected override Guid[] GetConfigurationIndependentPropertyPages()
        {
            Guid[] result = new Guid[1];
            result[0] = typeof(xxPropertyPage).GUID;
            return result;
        }

        /// <summary>
        /// Overriding to provide project general property page.
        /// </summary>
        /// <returns>Returns the GeneralPropertyPage GUID value.</returns>
        protected override Guid[] GetPriorityProjectDesignerPages()
        {
            Guid[] result = new Guid[1];
            result[0] = typeof(xxPropertyPage).GUID;
            return result;
        }

プロパティ ページを生成するために必要な .xxProj/.yyProj ファイルにある必要がある特定の何か、または私が見落としている可能性があるものはありますか?

.yyProj ファイルの例:

    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{F4A26EF6-E6CF-4486-A948-8498EE475EFF}</ProjectGuid>
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  </PropertyGroup>

  <PropertyGroup>
    <TargetName>$productvendor$.$productname$.Product</TargetName>
    <OutputType>xxProject</OutputType>
    <SDKVersion>v3.1</SDKVersion>
    <VendorName>$productvendor$</VendorName>
    <ProductName>$productname$</ProductName>
    <ProductCategory>$productcategory$</ProductCategory>
    <ProductGuid>$productguid$</ProductGuid>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="xx.pxs" /> <--pxs is used by the xxProj-->
  </ItemGroup>

  <Import Project="$(MSBuildExtensionsPath)\SDKCompany\Exchange\$(SDKVersion)\SDKCompany.Xchng.Product.xx.Settings.targets" />
  <Import Project="$(MSBuildExtensionsPath)\SDKCompany\Exchange\$(SDKVersion)\SDKCompany.Xchng.Product.xx.targets" />

</Project>
4

0 に答える 0