簡體   English   中英

VSIX Visual Studio 擴展項目模板創建

[英]VSIX Visual studio extension project template Creation

我有一個 VSIX Visual Studio 2019 擴展,它應該向 Visual Studio 添加一個項目模板。 為此,我使用了 FlavouredProjectBase 和 FlavouredProjectFactory。 類看起來像這樣:

項目類別:

class LugiaUIProject : FlavoredProjectBase
{

    public LugiaUIProject(IServiceProvider site)
    {

    }
}

工廠等級:

[Guid(LugiaUIProjectPackage.LugiaUIProjectFactoryString)]
internal class LugiaUIProjectFactory : FlavoredProjectFactory
{
    private LugiaUIProjectPackage lugiaUIProjectPackage;

    public LugiaUIProjectFactory(LugiaUIProjectPackage pkg)
    {
        lugiaUIProjectPackage = pkg;
    }

    protected override object PreCreateForOuter(object outerProject)
    {
        return new LugiaUIProject();
    }

    protected override void CreateProject(string fileName, string location, string name, uint flags, ref System.Guid projectGuid, out System.IntPtr project, out int canceled)
    {
        //??
    }
}

該項目的注冊似乎工作正常,因為模板在創建新項目時顯示在模板列表中: 在此處輸入圖片說明

但我無法讓項目的創建工作。 當我選擇模板時,它只會引發錯誤。 如果CreateProject覆蓋中有斷點,則會命中,但不會生成項目。 不幸的是,我沒有找到任何關於“FlavouredProject”創建的資源/文檔。 誰能向我解釋缺少什么/我在這里做錯了什么? 或者這個“FlavouredProject”方法被棄用了?

您遇到此錯誤的原因是您的項目模板缺少一些內容。 即項目文件(.csproj 或類似文件)以及 .vstemplate。

這里要考慮一件事; 是您希望您可能希望使用安裝自定義項目風格的相同 .VSIX 部署您的項目模板。 所以你應該考慮創建一個實際的項目模板項目。 然后使用 Project to Project 引用從 VSIX 項目中引用該項目,並將其作為資產包含在 .vsixmanifest 中。

使用項目模板向導創建初始項目模板,將確保您獲得項目文件以及 .vsixmanifest。 雖然您需要修改 .csproj 以使用您的項目風格。 也就是說,您需要確保將項目風格的 guid 添加到 .csproj 文件中的標記中。 否則,該項目仍將是基於 C# 的庫存項目。 :-)

幾年前我發布了一個 有點過時的自定義項目類型示例,它實現了自定義項目類型(不是項目風格),但它還包含一個項目和項目模板,類似於您正在嘗試執行的操作。 雖然它是為 VS 的早期版本編寫的,但可能仍然可以作為一個可行的示例 /wrt 實現項目模板以配合您的自定義項目風格。

同樣值得一讀:

真摯地,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM