我有 Win7 64 位、Visual Studio 2010,并且我为 Vs2010 开发了一个插件。
我尝试在错误列表 Windows VS 中显示消息。
我在 Addin 的 OnBuildProjConfigDone 构建事件中使用 ErrorListProvider
this._buildEvents.OnBuildProjConfigDone += new _dispBuildEvents_OnBuildProjConfigDoneEventHandler(_buildEvents_OnBuildProjConfigDone);
我收到此错误 InvalidOperationException
必须安装服务“Microsoft.VisualStudio.Shell.Interop.IVsTaskList”才能使此功能正常工作。确保此服务可用。
连接
public partial class Connect : IDTExtensibility2, IDTCommandTarget, System.Windows.Forms.IWin32Window, IOleCommandTarget
OnBuildProjConfigDone
void _buildEvents_OnBuildProjConfigDone(string project, string projectConfig, string platform, string solutionConfig, bool success)
{
// Omitted
if (!resul)
{
project.DTE.ExecuteCommand("Build.Cancel");
var errorListHelper = new ErrorListHelper();
ErrorListProvider errorProvider = errorListHelper.GetErrorListProvider();
var newError = new ErrorTask();
newError.ErrorCategory = TaskErrorCategory.Message;
newError.Category = TaskCategory.BuildCompile;
newError.Text = "Cualquier mensaje de error aqui";
errorProvider.Tasks.Add(newError);
}
}
错误列表助手
public class ErrorListHelper : System.IServiceProvider
{
public ErrorListProvider GetErrorListProvider()
{
ErrorListProvider provider = new ErrorListProvider(this);
provider.ProviderName = "Provider";
provider.ProviderGuid = System.Guid.NewGuid();
return provider;
}
public object GetService(Type serviceType)
{
return Package.GetGlobalService(serviceType);
}
}
@JohnL 的建议:我在 GetService 方法中放置了一个断点,并且Package.GetGlobalService 正在返回 null。
有什么建议么?