如何初始化EnvDTE80.DTE2对象来访问解决方案?

问题描述 投票:1回答:1

我在我的代码中使用EnvDTE80的参考来打开visual studio解决方案,然后遍历其中的项目。我是新手,并使用下面的代码片段:首先定义了以下类型的对象:

EnvDTE80.DTE2 dte2;

然后尝试通过它访问解决方案:

Solution2 solution = dte2.Solution as E2.Solution2;
if (solution == null)
{
return;
}

Projects projects = solution.Projects;
foreach (E1.Project project in projects)
{
Property outputPath =
project.ConfigurationManager.ActiveConfiguration.Properties
.Item("outputPath");
outputPath.Value = buildFolderPath;
project.Save(project.FullName);
}

基本上我试图通过代码片段更改项目输出路径,每当我运行代码时,我得到一个错误,指出“对象引用未设置为对象的实例”。 “dte2”对象为null。

有什么建议如何初始化它?

.net envdte
1个回答
0
投票

对于未来的Google员工,这是如何实例化的

        var slnPath = @"C:\Code\public\src\website.sln";
        var envDteType = Type.GetTypeFromProgID("VisualStudio.DTE.15.0");

        var envDte = Activator.CreateInstance(envDteType, true);
        var dte2 = (DTE2)envDte;

        var solution = (Solution4) dte2.Solution;
        solution.Open(slnPath);
© www.soinside.com 2019 - 2024. All rights reserved.