6

c# を使用して GAC にアセンブリをインストールする必要があります。以下は私のコードです:

new System.EnterpriseServices.Internal.Publish().GacInstall("MyAssembly.dll");

上記のコードでは、次のエラーが発生します。

絶対パスが必要です

しかし、静的ファイル パス (絶対パス) を使用せずに実行するには、これが必要です。誰でも可能かどうか教えてもらえますか? プロジェクト参照内のアセンブリへの参照を追加しました。このアセンブリを GAC 内にインストールする必要があります。

4

5 に答える 5

12

次のようなことができます:

GacInstall((new System.IO.FileInfo("MyAssembly.dll")).FullName);

また、

GacInstall(System.IO.Path.GetFullPath("MyAssembly.dll"));

ファイルが現在の作業ディレクトリにあると仮定します。そうでない場合は、この DLL を見つけるために使用されているルールを定義する必要があります (たとえば、現在の実行可能ファイルと同じパスにありますか?)。

于 2012-09-12T07:13:06.053 に答える
2

私が思いついた以下の作品を試してみてください。これがうまくいくかどうか教えてください

Assembly assembly = Assembly.GetAssembly(typeof(Program));//Replace your Type here.
string filePath = assembly.Location; 

次に、このファイル パスを使用します。

于 2012-09-12T07:26:23.953 に答える
1

実行可能ファイルに関してその相対パスがわかっている場合は、作成しますDLL

string executableDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string assemblyFullPath = Path.Combine(executableDirectory,
                            relativePathToAssembly);

あなたのために働くはずです。

于 2012-09-12T07:14:17.370 に答える
0

エラー自体は、存在するdllの完全な場所のパスを指定する必要があると述べています。つまり、パスの C:\myprojects\myassembly.dll

于 2012-09-12T07:10:49.113 に答える
-3

C# で ".dll" ファイルをグローバル アセンブリ キャッシュに追加する簡単な手順:

  1. プロジェクトで、GAC にインストールする .dll ファイルへの「参照を追加」します。
  2. 参照から、特定の .dll ファイルを右クリックし、[プロパティ] を選択します。
  3. プロパティ「ローカルにコピー」を「True」に変更します
  4. wspBuilder を使用してビルドおよびデプロイする
  5. 確認のために、マニフェスト ファイルでパスが存在するかどうかを確認し、「C:\Windows\assembly」でも確認します。
于 2013-06-27T05:51:22.777 に答える