C# 如何在IVsSingleFileGenerator中跳过文件?
我有自定义工具和IVsSingleFileGenerator的实现。 如何跳过生成文件并保留输出内容的当前版本(防止重新生成)C# 如何在IVsSingleFileGenerator中跳过文件?,c#,visual-studio,vs-extensibility,visual-studio-sdk,C#,Visual Studio,Vs Extensibility,Visual Studio Sdk,我有自定义工具和IVsSingleFileGenerator的实现。 如何跳过生成文件并保留输出内容的当前版本(防止重新生成) 当我返回pcbOutput=0时,输出文件被清除。读取输出文件的现有内容。然后将它们重新填充到pcb输出中 public int Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, IntPtr[] rgbOutputFileContent
当我返回pcbOutput=0时,输出文件被清除。读取输出文件的现有内容。然后将它们重新填充到pcb输出中
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编写代码如果返回
VSConstants.E_FAIL
而不是VSConstants.S_OK
,会发生什么?我要尝试的另一件事是返回VSConstants.S_FALSE
@280Z28如果我返回S_OK
或S_FALSE
,生成器将清除输出文件,因为输出参数为0。当我返回E_FAIL
时,生成器将删除输出文件。
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;
}