.net コンソール アプリケーション内の PowerShell 実行空間にアセンブリを読み込む際に問題が発生しています。
アプリケーションを実行すると、「タイプ [Test.Libary.TestClass] が見つかりません: このタイプを含むアセンブリが読み込まれていることを確認してください」というエラーが表示されます。
アセンブリを GAC にインストールしようとしましたが、違いはないようです。AssemblyConfigurationEntry クラスに関する多くのドキュメントを見つけることができなかったようです。
コンソール アプリケーション:
namespace PowerShellHost
{
class Program
{
static void Main(string[] args)
{
string assemblyPath = Path.GetFullPath("Test.Library.dll");
RunspaceConfiguration config = RunspaceConfiguration.Create();
var libraryAssembly = new AssemblyConfigurationEntry("Test.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d7ac3058027aaf63", assemblyPath);
config.Assemblies.Append(libraryAssembly);
Runspace runspace = RunspaceFactory.CreateRunspace(config);
runspace.Open();
PowerShell shell = PowerShell.Create();
shell.Runspace = runspace;
shell.AddCommand("New-Object");
shell.AddParameter("TypeName", "Test.Libary.TestClass");
ICollection<PSObject> output = shell.Invoke();
}
}
}
Test.Library.dll:
namespace Test.Library
{
public class TestClass
{
public string TestProperty { get; set; }
}
}