gpt4 book ai didi

windows - 使用 Powershell 向 Regasm 注册 .NET DLL 失败

转载 作者:可可西里 更新时间:2023-11-01 11:48:35 25 4
gpt4 key购买 nike

我使用 visual studio 2012 在 C# 中创建了一个 DLL 文件,通过引用它可以在 Access 2013 中使用。这一切都很好。我创建了 DLL 并使用 CMD 注册它:RegAsm.exe -tlb -codebase C:\MyFolderX\MyDLL.dll

一切正常,但因为 DLL 需要在多台计算机上注册,所以我想通过 1 次单击来完成此操作,而不是在每台用户计算机上手动完成。

因为用户已经使用 BATCH 文件来启动 Access 前端应用程序(使用 DLL),所以我认为在他们使用 BATCH 启动时注册一次是明智的。为此,我在 BATCH 脚本中添加了以下内容:

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
RegAsm.exe -tlb -codebase C:\MyFolderX\MyDLL.dll

遗憾的是,这不起作用,因为它必须在管理员模式下完成,并且选中以管理员身份运行的复选框只是出于某种原因跳过我的 BATCH 代码而不做任何事情。

不过,我为什么不使用 Powershell 脚本来执行相同的操作并从我的批处理脚本中启动它。

为此,我创建了以下脚本:

#Register the assembly
$RegAsm = 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe -codebase -tlb'
$Assembly = 'C:\MyFolderX\MyDLL.dll'

Start-Process $RegAsm $Assembly

pause

然而,这不断给出错误:

Start-Process : This command cannot be run due to the error: The system cannot find the file specified. At C:\users\me\Desktop\RegisterMyDLL.pst1

+Start-Process $RegAsm $Assembly

InvalidOperation: (:) Start-Process
FullyQualifiedErrorId : InvalidOperationException, Microsoft.Powershell.Commands.StartProcessCommand

我仔细检查了 DLL 的位置,它就在那里。任何人都知道我做错了什么吗?也许有些语法错误或引用太多?已经试图逃避我的反斜杠,但这没有任何效果。

或者也许有更好的方法来实现在多个用户处轻松注册 DLL?

最佳答案

这个有用吗?

 ."C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" -codebase -tlb $Assembly

关于windows - 使用 Powershell 向 Regasm 注册 .NET DLL 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36915205/

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