2016-04-28 99 views
0

Visual Studio 2012では、C#でDLLを作成しましたが、これを参照することでAccess 2013で使用できます。これはすべて正常に動作します。私はDLLを作成し、それをCMDに登録しました:RegAsm.exe -tlb -codebase C:\MyFolderX\MyDLL.dllPowershellを使用してRegasmで.NET DLLを登録するとエラーが発生する

これはすべてうまくいきますが、複数のコンピュータにDLLを登録する必要があるため、各ユーザーのコンピュータで手動で行うのではなく、1回クリックします。

ユーザは既にBATCHファイルを使用して(DLLを使用する)Accessフロントエンドアプリケーションを起動するため、BATCH起動時に一度登録することをお勧めします。だから、これを行うには、これは私が私のバッチスクリプトで次のようにコメントを追加しました:それは管理者モードで実行する必要があり、管理者として実行]チェックボックスをチェックすることだけでなくて、私のバッチコードをジャンプしているため

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

これは悲しげに動作しません。何らかの理由で何かをする。

だから、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を登録するには、より良い方法がありますか?

答えて

1

これは機能しますか?

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

はい、あります。ありがとうございました!それでも管理者の警告が表示されますが、少なくとも私はちょっと変わっています! – Nicolas

関連する問題