バッチファイルを使用してGACにアセンブリを登録する必要があります。 GacUtil.exe
のインストール場所を見つける方法はありますか、またはGacUtilなしでアセンブリを登録する方法はありますか?
GacUtilは、SDKインストールのみのフレームワークインストールではインストールされません。したがって、インストール先のボックスにインストールされることを保証できません。
これはバッチファイル内では機能しませんが、アプリケーションを自分で開発した場合は、以下で説明するGacInstallメソッドを使用できます。
http://msdn.Microsoft.com/en-us/library/system.enterpriseservices.internal.publish.gacinstall.aspx
あるいは、msiファイルを作成してアプリケーションを展開することをお勧めします。ここのチュートリアル:
http://www.dreamincode.net/forums/topic/58021-deploying-a-c%23-application-visual-studio-setup-project/
配布にGacUtil.exeのコピーを含めることはお勧めできません。別のライセンスが適用されており、再配布するライセンスが付与されていない可能性が高いためです。
最善の方法は、 this one などの Publish.GacInstall をラップするPowerShellスクリプトを使用することです
次を実行して、dllをGAC(グローバルアセンブリキャッシュ)にインストールできます。
[Reflection.Assembly]::LoadWithPartialName("System.EnterpriseServices") | Out-Null
[System.EnterpriseServices.Internal.Publish] $publish = new-object System.EnterpriseServices.Internal.Publish
$publish.GacInstall(<<FullFilePathToTheDll>>)
これは、ネイティブのPowerShellではほとんど必要ありませんが、PowerShellから.NETライブラリをインスタンス化して使用する必要があります
iisreset
を実行します。
InnoSetupを使用して、アセンブリを含むインストールを作成しました。
重要な行は次のとおりです。
Source: "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"; DestDir: "{app}"; StrongAssemblyName: "WinSCPnet, Version=1.3.7.7333, Culture=neutral, PublicKeyToken=2271ec4a3c56d0bf, ProcessorArchitecture=MSIL"; Flags: ignoreversion gacinstall uninsnosharedfileprompt