次のコマンドを使用したカスタム msbuild タスクがあります。
var workspace = Workspace.LoadStandAloneProject(csprojPath);
実行すると、次のエラーがスローされます。
System.InvalidCastException がユーザー コードによって処理されませんでした Message='Roslyn.Utilities.SerializableDataStorage' 型に透過プロキシをキャストできません。 ソース=Roslyn.Services スタックトレース: Roslyn.Utilities.RemoteServices.CreateInstance[T]() で Roslyn.Services.Host.TemporaryStorageServiceFactory.CreateService (IWorkspaceServiceProvider ワークスペース サービス) で Roslyn.Services.Host.WorkspaceServiceProviderFactory.Provider.c__DisplayClass7.b__4() で Roslyn.Utilities.NonReentrantLazy`1.get_Value() で Roslyn.Services.Host.WorkspaceServiceProviderFactory.Provider.GetService[TWorkspaceService]() で Roslyn.Services.SolutionServices..ctor (IWorkspaceServiceProvider ワークスペース サービス、ILanguageServiceProviderFactory 言語サービス ファクトリー) で Roslyn.Services.Solution..ctor (SolutionId id、文字列 filePath、VersionStamp バージョン、VersionStamp latestProjectVersion、ILanguageServiceProviderFactory languageServiceProviderFactory、IWorkspaceServiceProvider ワークスペースサービス) で Roslyn.Services.Host.SolutionFactoryServiceFactory.SolutionFactoryService.CreateSolution (SolutionId id) で Roslyn.Services.Host.TrackingWorkspace.CreateNewSolution (ISolutionFactoryService solutionFactory、SolutionId id) で Roslyn.Services.Host.TrackingWorkspace..ctor (IWorkspaceServiceProvider ワークスペースServiceProvider、ブール値の enableBackgroundCompilation、ブール値の enableInProgressSolutions) で Roslyn.Services.Host.HostWorkspace..ctor (IWorkspaceServiceProvider ワークスペースServiceProvider、ブール型の enableBackgroundCompilation、ブール型の enableInProgressSolutions、ブール型の enableFileTracking) で Roslyn.Services.Host.LoadedWorkspace..ctor (ILanguageServiceProviderFactory languageServiceProviderFactory、IWorkspaceServiceProvider ワークスペースServiceProvider、IProjectFileService projectFileFactsService、IDictionary`2 globalProperties、ブール値の enableBackgroundCompilation、ブール値の enableFileTracking) で Roslyn.Services.Host.LoadedWorkspace..ctor (ExportProvider exportProvider、ブール値の solutionLoadOnly、ブール値の enableFileTracking) で Roslyn.Services.Host.LoadedWorkspace..ctor (ブール値の enableFileTracking) で Roslyn.Services.Host.LoadedWorkspace.LoadStandAloneProject (文字列の projectFileName、文字列の構成、文字列のプラットフォーム、文字列の言語、ブール値の enableFileTracking) で Roslyn.Services.Workspace.LoadStandAloneProject (文字列の projectFileName、文字列の構成、文字列のプラットフォーム、文字列の言語、ブール値の enableFileTracking) で ...
コンソール アプリケーションで同じプロジェクトを使用して同じコードを実行すると、正常に動作します。
何か案は?グーグルは役に立ちませんでした!