c# - 无法加载 GAC 中找到的程序集

标签 c# powershell-2.0 t4

我正在尝试加载位于 C:\Windows\Assembly\的程序集,称为 Microsoft.VisualStudio.TextTemplate(版本 9.0.0.0)

这是我正在使用的 PowerShell 2.0 中的命令

$inputfile = 'Hello.tt'
[Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualStudio.TextTemplating") | 
   Out-Null

$server = New-Object ("Microsoft.VisualStudio.TextTemplating") $inputfile

我得到的错误是 default.ps1:找不到类型 [Microsoft.VisualStudio.TextTemplate] 确保加载包含该类型的程序集。

编辑:我使用相同的方法加载其他 Microsoft 程序集(例如 Smo),这些程序集也在缓存中注册,所以我想知道该程序集是否存在另一个问题

提前致谢

最佳答案

这里的问题似乎不是程序集负载。我验证了 LoadWithPartialName 方法确实加载了相关程序集。

问题是您的 New-Object 调用传递的是命名空间而不是类型。您需要向其传递 Microsoft.VisualStudio.TextTemplated 命名空间内的类型名称。

关于c# - 无法加载 GAC 中找到的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192376/

相关文章:

c# - 如何使用 C# 驱动程序更新 MongoDB 数组中的子文档

c# - 如何在 xaml 中填充宽度的窗口中绘制一条线

c# - 返回类型为对象的方法

powershell - 需要逗号将 SamAccountName 与组分开

powershell - 检查 PowerShell 对象是否存在的最佳方法?

powershell - 无法将参数 “address”转换为 “System.Object[]”,值 “DownloadString”键入 “System.Uri”: “Cannot convert the ” System.Object []“

c# - 如何使用 .tt 模板创建文件夹?

c# - 将列表值传递给 t4 模板

entity-framework - 使用 TextTransform.exe 从 edmx 文件生成代码

C# 和 Access 数据库通过名称搜索