スクリプトの実行に PowerShell SDK を使用する .NET/C# 2.0 アプリケーションを開発しています。私はスナップインを使用していません。PSのRunspaceConfigurationを介してすべてを直接設定しています。
したがって、私の問題は、アプリケーションに実装されているタイプPlux.ExtensionTypeInfoのカスタム形式を追加できないことです。
( Plux.ExtensionTypeInfoには Name というプロパティがあります)
それが私が試していることです:
...
RunspaceConfiguration config = RunspaceConfiguration.Create();
config.Formats.Prepend(
new FormatConfigurationEntry("plux.format.ps1xml")
);
config.Formats.Update();
...
plux.format.ps1xml:
<Configuration>
<ViewDefinitions>
<View>
<Name>Plux.ExtensionTypeInfo</Name>
<ViewSelectedBy>
<TypeName>Plux.ExtensionTypeInfo</TypeName>
</ViewSelectedBy>
<TableControl>
<TableHeaders>
<TableColumnHeader>
<Width>30</Width>
</TableColumnHeader>
</TableHeaders>
<TableRowEntries>
<TableRowEntry>
<TableColumnItems>
<TableColumnItem>
<PropertyName>Name</PropertyName>
</TableColumnItem>
</TableColumnItems>
</TableRowEntry>
</TableRowEntries>
</TableControl>
</View>
</ViewDefinitions>
</Configuration>
いくつかの ExtensionTypeInfo オブジェクトを返すコマンドレットを実行した後、出力は決して書式設定されません。
組み込みのコマンドレットとタイプを使用すると、フォーマットは PS ホスト アプリケーションで完全に機能します。コマンドレットの登録も、構成オブジェクトを介して正常に機能します。powershell.exe または私のホスティング アプリケーションを使用してplux.format.ps1xmlでupdate-formatdataを起動すると、エラーはスローされません。
それでも、上記のコードはフォーマットには影響しません。