0

scvmm のアドインをプログラムしていますが、なぜこれが起こっているのかわかりません。

これは、コンパイルされていない add-in.dll です。

[AddIn("Backup HyperV VM")]
public class BackupHyperVVM : ActionAddInBase
{
    public override bool CheckIfEnabledFor(IList<ContextObject> contextObjects)
    {
        if (contextObjects != null && contextObjects.Count > 0)
            return true;

        return false;
    }

    public override void PerformAction(IList<ContextObject> contextObjects)
    {

    }

    private void execPSS(string param) //Execute a powershell script within the SCVMM -- need to make shure I run it on the right host
    {
        PowerShellContext.ExecuteScript<ServerConnection>(param,
            (items, error) =>
            {
                //code to set server info here
                if (error == null)
                {
                    //on Success
                }
                else
                {
                    //on Error
                }
            });
    }
}

これが manifest.xml です。

<ConsoleAddIn
  xmlns="urn:VMM-AddIns-v1-CTP"
  Name="VMM Backup Add-In"
  Version="0.0.1.0"
  Author="..."
  Description="This Add-In (once finished) provides the user with a GUI solution to backup and restore VMs from a Hyper-V host."
  FolderName="BackupAddIn"
  TrustLevel="Full">
  <ActionAddIn
    Name="Backup VMs Add-In"
    Contexts="Cluster"
    AssemblyName="add-in.dll"
    ShowInContextMenu = "True"
    ActionType="Code"    
    Icon="Ico.ico">
    <ButtonLabel>
      Backup VM
    </ButtonLabel>
  </ActionAddIn>
</ConsoleAddIn>

ファイルを圧縮してアドインをロードしようとすると、次のエラーが表示されます (ドイツ語から翻訳しました)。

アドイン コンポーネント「バックアップ VM アドイン」がアセンブリ「アドイン」に見つかりません。考えられる理由: 1. アドインの属性「名前」が、アドイン クラスの属性「AddIn」で定義された名前と一致していません。2. アドイン クラスはパブリックではありません。

助けてくれてありがとう..これを解決する方法がわかりません。ドキュメントでさえ私を助けることができませんでした。

4

1 に答える 1

0

私が見る限り、マニフェスト エントリを AssemblyName="add-in.dll" から AssemblyName="BackupHyperVVM" に変更する必要があります。

于 2014-11-21T21:21:31.270 に答える