Visual Studio包-EnvDTE Solution.SolutionBuild在调用Build时锁定DLL

本文关键字:Build 调用 锁定 DLL SolutionBuild Studio -EnvDTE Solution Visual | 更新日期: 2023-09-27 18:28:14

我正在使用(DTE) GetService(typeof (DTE))获取有关Visual Studio包中当前打开的解决方案的信息。

当代码构建解决方案(请参阅下面的代码)时,它会锁定DLL文件,因此即使在MenuItemCallback方法完成后,我也无法使用常用菜单选项或再次选择包菜单选项来构建解决方案。

方法,当我在Visual Studio的实验实例中选择菜单选项时调用:

private void MenuItemCallback(object sender, EventArgs e)
{
    var solutionBuild = ((DTE) GetService(typeof (DTE))).Solution.SolutionBuild;
    solutionBuild.Build(true);
    if (solutionBuild.LastBuildInfo == 0)
    {
        ShowMessage("The solution built");
    }
}

如何让它释放DLL,以便在运行包选项后继续编辑解决方案?

Visual Studio包-EnvDTE Solution.SolutionBuild在调用Build时锁定DLL

事实证明,这根本没有发生,程序只是在奇怪的时候工作,这真的让我很困惑。事实证明,我的代码中还有其他东西也在使用DLL文件,那就是锁定它!