首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Powershell向Regasm注册.NET DLL失败

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

Stack Overflow用户
提问于 2016-04-28 12:49:08
回答 1查看 5.6K关注 0票数 1

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

这一切都很好,但是由于DLL需要在多台计算机上注册,所以我想用1次单击来完成这个操作,而不是在每台用户计算机上手动完成。

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

代码语言:javascript
复制
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
RegAsm.exe -tlb -codebase C:\MyFolderX\MyDLL.dll

遗憾的是,这不起作用,因为它必须在管理模式下完成,并且以管理员的身份检查复选框,只需跳过我的批处理代码,而不需要出于某种原因进行任何操作。

所以我想,为什么不使用Powershell脚本来做同样的事情,并从我的批处理脚本中启动它呢?

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

代码语言:javascript
复制
#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

然而,这仍然会导致错误:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-28 12:52:09

这行得通吗?

代码语言:javascript
复制
 ."C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" -codebase -tlb $Assembly
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36915205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档