我遇到了'使用'我创建的自定义字段的问题。在power shell中,使用LoadFrom函数将程序集加载到脚本中,并且在加载程序集时不会抛出任何错误,但它的作用就好像未加载程序集一样。
尝试枚举字段时,我的某个自定义字段会出现“未正确安装”错误。当尝试通过myListItem [“myCustomField”]访问自定义字段时,我收到了一个CannotIndex错误。
在使用C#在Visual Studio中编写确切的代码时,我遇到了同样的错误,但是,一旦我将参考添加到我的程序集,它就可以在那里正常工作。(这里的重要部分,这应该表明我没有在power shell中做任何错误的事情,即通过显示名称而不是内部名称来访问字段等。)
如果我将我的程序集添加到GAC,那么在power shell中一切正常,但目前这不是我的选择。我需要能够从dll加载程序集。
任何线索?
答案 0 :(得分:1)
通过LoadFrom加载的程序集的行为方式与从GAC加载的程序集的行为方式不同。这不仅仅是信任问题。如果您有耐心,请从这里开始:
http://blogs.msdn.com/b/suzcook/archive/2003/05/29/choosing-a-binding-context.aspx
在visual studio中添加引用仅用于编译过程,而不是运行时加载。在运行时,依赖程序集(引用)与进程可执行文件放在同一目录中(如果它们不是GAC引用。)在powershell情况下,依赖程序集与进程可执行文件不在同一位置(powershell)。可执行程序)。这就是为什么探测它们的依赖性失败的原因。如果你将它们复制到$ PSHOME它可能会有效,但这不是一个可行的解决方案,因为这是system32下的特权位置。
-Oisin
答案 1 :(得分:0)
PowerShell 2:
Add-Type -Path C:\Path\To\Assembly.dll
PowerShell 1:
[Reflection.Assembly]::LoadFrom('C:\Path\To\Assembly.dll')