2

Office アドインがイベントをイベント ログに記録できるように、新しいイベント ソースを作成する必要があります。これには管理者権限が必要なので、インストール時にこれを行う必要があります。msdn ドキュメントには次のように書かれています。

インストーラーから継承するクラスが >true に設定された RunInstallerAttribute でマークされている場合、アセンブリのインストール時に Visual Studio のカスタム アクション インストーラーまたは InstallUtil.exe が呼び出されます。

現在、標準の Visual Studio Outlook 2007 プロジェクトを使用しています。これにより、アドインのインストールに使用できる ClickOnce setup.exe ファイルが作成されると思います。アドイン プロジェクトに MyEventLogInstaller クラス (以下に示す) を含めるだけで、setup.exe がそれを検出してログ ソースをインストールするのでしょうか。setup.exe は RunInstaller 属性を検出し、「カスタム アクション インストーラー」を使用しますか? コード (以下) は理解できますが、理解できないのは、派生した MyEventLogInstaller で Install メソッドを実際に呼び出すことをセットアップ プログラムがどのように認識しているかです。

[RunInstaller(true)]
public class MyEventLogInstaller: Installer
{
    private EventLogInstaller myEventLogInstaller;

    public MyEventLogInstaller() 
    {
    myEventLogInstaller = new EventLogInstaller();
    myEventLogInstaller.Source = "Source1";
    myEventLogInstaller.Log = "Log1";

    Installers.Add(myEventLogInstaller);   
    }
}
4

1 に答える 1

2

わかった(と思う)!

私が行ったことは、Visual Studio 2010 で新しいセットアップ プロジェクトを作成することでした。次に、新しいコンソール アプリケーション プロジェクトを包括的なソリューションに追加し、MyEventLogInstaller クラスをコンソール アプリケーション プロジェクトに追加しました。コンソール アプリケーションのメイン メソッドで、MyEventLogInstaller をインスタンス化し、新しいイベント ソースに書き込むコードを追加します。次に、[Setup Project] -> [Add] -> [Assembly] を右クリックし、コンソール アプリケーションの実行可能ファイルを選択して、セットアップ プロジェクトに追加します (セットアップ プロジェクトは初めてで、もっと直感的なものを期待していましたが、脱線します) )。

ここで、最後のステップ (そして、 Why won't my Setup Project Perform my Custom Registration Process for the bit for Custom actions のおかげで) は、セットアップ プロジェクトを右クリックし、[View] -> [Custom Actions] を選択し、トップ レベルの [Custom] を右クリックします。 Actions->Add Custom Action... を選択し、インストーラーでアセンブリを選択します (私の場合は Console Application .exe)。

.msi をビルドして管理者アカウントでインストールできることをすべて実行した後、管理者以外のアカウントに切り替えてコンソール アプリケーションを実行すると、新しく作成されたソースにログを記録できるようになりました!! うわー。

于 2013-02-27T22:38:30.887 に答える