c# - 如何跳过 IVsSingleFileGenerator 中的文件?

标签 c# visual-studio vs-extensibility visual-studio-sdk

我有自定义工具和 IVsSingleFileGenerator 的实现。 如何跳过生成文件并保留当前版本的输出内容(防止重新生成)?

int IVsSingleFileGenerator.Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, IntPtr[] rgbOutputFileContents, out uint pcbOutput, IVsGeneratorProgress pGenerateProgress)
{
   if(some_expression)
       // Skip this file from generate and keep the current version
}

当我返回 pcbOutput = 0 时,输出文件被清除。

最佳答案

读取输出文件的现有内容。然后将它们塞回 pcbOutput

public int Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, IntPtr[] rgbOutputFileContents, out uint pcbOutput, IVsGeneratorProgress pGenerateProgress)
{
    var originalFileName = GetOriginalFileName(wszInputFilePath);
    SaveOutputContent(rgbOutputFileContents, out pcbOutput, system.IO.File.ReadAllText(originalFileName));
    return VSConstants.S_OK;
}

您必须为 GetOriginalFileName 编写代码

关于c# - 如何跳过 IVsSingleFileGenerator 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22409931/

相关文章:

c# - 如何在 C# 中使用 XPath 检索最后一个节点?

c# - .net 事务范围 block 第二个事务

c# - 从 IWpfTextView 获取非 cs 文件的文档路径

visual-studio - 是否可以在 Visual Studio 状态栏中显示自定义图标

visual-studio-2017 - 如何在 VS2017 中用 C# 为 SQL Server Management Studio 17 创建扩展?

c# - 正在运行的 WCF 服务的 URL/终结点地址

c# - 从 csproj 引用 ASP.NET xproj

sql - VB.Net/Access SQL插入子查询问题

c# - VS2022 VueJs 独立模板 TS 错误

c++ - Linux 上哪些 C++ IDE 的 "intellisense"与 Visual Studio 相当或更好?