gpt4 book ai didi

powershell - Add-Type -ReferencedAssemblies失败,无法加载或找到程序集。解

转载 作者:行者123 更新时间:2023-12-03 00:55:11 35 4
gpt4 key购买 nike

解决此问题的方法是,按照我发帖的其中一项建议,将DLL添加到GAC中。正如我在我的一份答复中所指出的那样,在需要运行此过程的环境中,可伸缩性将不可用。因此,不能选择简单的解决方案。为了解决这个问题,我派生了一个Posh函数,它将DLL添加到GAC:

param([string] $ dllPath)

[string] $ publicToken = $ null
[string] $ val = $ null
[string] $ version = $ null

如果(测试路径)$ dllPath)
{
$ baseFileName = [System.IO.Path]::GetFileNameWithoutExtension($ dllPath)
$ targetName =“c:\ windows \ assembly \ GAV_MSIL \” + $ baseFileName

# Get the key and public token
$val = sn -Tp $dllPath

# Get the version w/o loading
$version = [System.reflection.AssemblyName]::GetAssemblyName($dllPath).Version

# Proceed if the token is valid
if ($val -ne -null)
{
$vals = $val.split(" ")
$publicToken = $vals[$vals.length-1]
$targetNameSub=$targetName + "\" + $version + "__" + $publicToken

if (!(test-path $targetName))
{
Md $targetName | Out-Null
}

Md $targetNameSub | Out-Null

# Copy the DLL to the GAC
copy-item $dllPath $targetNameSub | Out-Null
}

}

我已经对此进行了测试,并且效果很好。在我的研究中,我发现一些东西表明该实用程序将注册表项输入到我没有做的事情中。但是此功能确实运行良好。

我尝试过反向过程,以提供一个Posh函数来删除GAC条目,但是每次删除DLL文件时拒绝访问都没有成功。

最佳答案

听起来好像问题在于tools.Utilities.dll本身很好,但是在c:\Program Files\subDir内部不存在依赖项的话。错误消息和将DLL移至其他文件夹都可以解决此问题的事实提示了这一点。新文件夹中可能缺少缺少的依赖项。

验证此问题最简单的方法是使用fuslogvw.exe准确查看阻止tools.Utilities.dll加载的错误。

  • http://msdn.microsoft.com/en-us/library/e74a18c4%28VS.71%29.aspx
  • 关于powershell - Add-Type -ReferencedAssemblies失败,无法加载或找到程序集。解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807271/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com