- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将以下 C# 代码转换为 PowerShell(我省略了我认为不相关的代码部分):
C#
System.Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true);
object obj = System.Activator.CreateInstance(t, true);
EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)obj;
dte.MainWindow.Activate();
dynamic solution = dte.Solution;
solution.Create(solution_folder_path, solution_name);
solution.SaveAs(solution_file_path);
dynamic project = solution.AddFromTemplate(template_path, project_folder_path, project_name);
TCatSysManagerLib.ITcSysManager system_manager = project.Object;
PowerShell
[System.Reflection.Assembly]::LoadFrom("C:\Windows\assembly\GAC_MSIL\TCatSysManagerLib\2.1.0.0__180016cd49e5e8c3\TCatSysManagerLib.dll");
$dte = New-Object -ComObject VisualStudio.DTE.10.0
$dte.SuppressUI = $false
$dte.MainWindow | %{$_.GetType().InvokeMember("Visible", "SetProperty", $null, $_, $true)}
$solution = $dte.Solution
$project = $solution.AddFromTemplate($template_path, $project_folder_path, $project_name)
[TCatSysManagerLib.ITcSysManager] $system_manager = [TCatSysManagerLib.ITcSysManager] $project.Object
我遇到的问题是 PowerShell 中的最后一行返回以下形式的错误:
Cannot convert the "System.__ComObject" value of type "System.__ComObject#{3b56a5ce-0c02-440b-8ced-f1f3e83f66ed}" to type "TCatSysManagerLib.ITcSysManager".
添加的详细信息:
我可以省略 PowerShell 代码中的 [TCatSysManagerLib.ITcSysManager]
类型。然而,我在稍后转换此 C# 代码时遇到了同样的问题:
TCatSysManagerLib.ITcSmTreeItem gvl = system_manager.LookupTreeItem("TIPC^PLC1^PLC1 Project^GVLs^GVL");
TCatSysManagerLib.ITcPlcDeclaration gvl_declaration = (TCatSysManagerLib.ITcPlcDeclaration)gvl;
string gvl_declaration_text = System.IO.File.ReadAllText(gvl_declaration_text_file_path);
gvl_declaration.DeclarationText = gvl_declaration_text;
在这种情况下,我必须转换为 TCatSysManagerLib.ITcPlcDeclaration
类型才能访问 gvl_declaration
的 DeclarationText
属性.
我是 C# 和 PowerShell 的新手,并且已经从示例中修改了这些。任何建议将不胜感激。
最佳答案
这里有一些想法。
VisualStudio.DTE
找到它,然后找到类型库 GUID,然后转到 TypeLib
键以查看 EnvDTE
被列为 PIA。回想起来,谷歌搜索也会找到它。使用 [reflection.assembly]::loadwithpartialname("EnvDTE")
加载 PIA。不幸的是,我无法通过 PIA 实例化对象。不过,您可以在 VS powershell 控制台中访问 $DTA 变量。GetMethod
来获取 COM 组件类的 MethodInfo
。然后,您可以对 MethodInfo
使用 .Invoke()。关于c# - PowerShell 中的“无法转换 "System.__ComObject"值 ...”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34056047/
我正在优化我们用来查询 Active Directory 的一些代码。其中一种方法获取自特定更新以来已更改的所有 AD 用户,由目录条目的 uSNCreated 属性确定。本质上,它是在执行 C# 等
是否可以将 System.__ComObject 转换为仅在运行时才知道的某种类型?我有以下代码 Type ComClassType = SomeDLLAssembly.GetType("ClassN
我正在使用 DSOFile 从某些 Crystal Reports 报表文件中获取摘要属性。 SummaryProperties.Thumbnail 返回一个对象,我需要将该对象转换为图像,以便在我的
由于将项目从 VS2010 升级到 VS2012,我收到错误消息: 'System.__ComObject' does not contain a definition for .WithComCle
Powershell与Excel新手在这里。我正在学习如何通过 powershell 与 excel 交互,并在几个网站上发现了“范围”功能。 奇怪的是,此功能在我的系统上不起作用并返回以下错误:方法
我有一个涉及以下场景的问题,应用程序 A 有一个 DataGridView,从中选择对象。它们被拖到应用程序 B 内的 DataGridView 中,对象被复制到新列表中。这是 App A 中的代码,
我正在尝试使用反射将 System.__ComObject 转换为接口(interface)类型。我试过使用 Convert.ChangeType(Object,Type) 但是 c# 然后抛出这个错
我将是第一个承认这是过时的编程。我以前从来没有看过AD,真的不明白。我想那是我的下一个研究...... 无论如何,这是一些测试代码,它应该显示到期日期——要么是可读的,要么是刻度线——这无关紧要。 (
尝试在 Visual Studio 2010 中发布 XNA 项目时出现以下错误。 Error 1 Publish failed with the following error: Unable to
我正在使用 C# 与 SolidWorks 交互。 我使用的是 Visual Studio 2017 最新版本 (15.7.3)。该项目引用了 SolidWorks .tlb 文件,就像文档中所说的那
我正在尝试自动登录并从特定站点收集数据。这是我的代码 $ie = New-Object -ComObject InternetExplorer.Application; $ie.Visible = $
我一直在编写一个使用网络浏览器界面运行某些服务器功能的脚本。我使用 Internet Explorer 8 在 Windows 7 上编写了脚本,它运行良好。一旦我将它移动到运行 Windows 20
这是我用来读取 xls 文件的代码: Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Intero
我正在尝试将以下 C# 代码转换为 PowerShell(我省略了我认为不相关的代码部分): C# System.Type t = System.Type.GetTypeFromProgID("Vis
有人知道在 C# 中对 __ComObject 实例使用“动态”关键字时是否有办法防止 RuntimeBinder 中的内存泄漏吗? 我得到了以下代码: var t = Type.GetTypeFro
我有两个 C# 项目,一个是 dll,另一个是 Windows 窗体应用程序。 我在 dll 中定义了一个 CoClass,如下所示` ' [ComVisible(true), Gui
我正在尝试使用 LINQPad快速发展小ArcObjects (一个基于 COM 的库,用于 ESRI's ArcGIS 软件)应用程序,并在使用它来 Dump() 我从 .NET 初始化的 COM
当我出于好奇而反射(reflection)所有类型以检查其他内容时,我偶然发现了一个奇怪的现象。 为什么程序集 mscorlib.dll(有时?)的类 System.__ComObject 声称是公开
我编写了一个使用防火墙 COM 库 Interop.NetFwTypeLib 来管理 TCP 传输规则的 Windows 服务。在两台机器上部署不报告问题,但我最近在另一台计算机上安装它并收到异常:
下面的代码给了我错误:cannot convert COM object of type 'System.__ComObject' to class type 'System.Web.UI.WebCo
我是一名优秀的程序员,十分优秀!