我们在向导中有以下代码,可将现有项目添加到新解决方案中:
//generating files
if (dte.Solution.Projects.Count < 1) // Solution is empty or doesn't exist
{
dte.Solution.Create(oneFolderHigher(Params.OutputDir, solutionName),
solutionFileName(solutionName));
}
// adding created project to solution
dte.Solution.AddFromFile(Path.Combine(Params.ProjectRootFolder,
Params.ProjectName + ".csproj"));
它在 MS Visual Studio 2010 下运行良好,但在 2012 下失败(我尝试了第二个参数):
System.Runtime.InteropServices.COMException (0x80004004):Wizard.Generator.NewProjectGenerator.Generate(Action`1 logMessage) 的 EnvDTE.SolutionClass.AddFromFile(String FileName, Boolean Exclusive) 中的操作中止(HRESULT 异常:0x80004004 (E_ABORT))在 Wizard.Forms.WizardForm.Finish()
在此错误之后,我手动将新项目添加到解决方案中,一切正常。但我们不能只说“对不起,我们无法为您添加新生成的项目,请您自行添加。”
MSDN 建议:
如果您想在执行期间禁止其 UI,您可以使用 LaunchWizard 方法而不是 AddFromFile 来执行向导。LaunchWizard 有一个允许您禁用 UI 的参数。
但是这种方法需要一些向导文件,所以不能解决。
有人可以帮忙吗?向导从“新建 -> 项目”菜单运行。