You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用ExecuteCrmOrganizationRequest执行PublishThemeRequest失败求助

解决PowerShell中PublishThemeRequest无法转换为OrganizationRequest的问题

这个错误的核心原因是类型不兼容——你创建的Microsoft.Crm.Sdk.Messages.PublishThemeRequest对象和ExecuteCrmOrganizationRequest方法期望的Microsoft.Xrm.Sdk.OrganizationRequest类型来自不同的程序集(或命名空间/版本不匹配),即使它们在继承关系上是父子类,.NET也会因为程序集上下文不同拒绝转换。

可能的原因及解决方案

1. 错误的命名空间引用

在较新的Dynamics 365 SDK版本中,大部分请求类(包括PublishThemeRequest)已经从Microsoft.Crm.Sdk.Messages迁移到了Microsoft.Xrm.Sdk.Messages命名空间。而你使用的Get-CrmConnection来自Microsoft.Xrm.Tooling.Connector模块,它依赖的是Microsoft.Xrm.Sdk程序集,因此需要使用对应命名空间的请求对象。

修正后的代码如下:

Import-Module Microsoft.Xrm.Data.Powershell
Add-PSSnapin Microsoft.Xrm.Tooling.Connector

$orgName = "<my organization name>";
$serverUrl = "http://server_url";
$Cred = Get-Credential -UserName "<my username>" -Message "Please Enter admin credentials for CRM"
$conn = Get-CrmConnection -Credential $Cred -OrganizationName $orgName -ServerUrl $serverUrl

# 使用正确的命名空间创建请求对象
$req = New-Object Microsoft.Xrm.Sdk.Messages.PublishThemeRequest
$req.Target = New-CrmEntityReference -EntityLogicalName "theme" -Id "DB80D57A-6410-4D11-B784-0093122802AC"

# 无需强制转换类型,让PowerShell自动处理
$result = $conn.ExecuteCrmOrganizationRequest($req, $null)

2. 程序集版本冲突

如果上述修改后仍然报错,可能是Microsoft.Xrm.Data.Powershell和Microsoft.Xrm.Tooling.Connector模块加载了不同版本的Microsoft.Xrm.Sdk程序集。可以通过以下命令检查加载的程序集版本:

# 检查Xrm.Sdk程序集
Get-Assembly Microsoft.Xrm.Sdk | Select-Object FullName, Version

# 检查Crm.Sdk.Messages程序集(如果存在)
Get-Assembly Microsoft.Crm.Sdk.Messages | Select-Object FullName, Version

如果发现版本不一致,建议卸载冲突的模块,重新安装匹配版本的Microsoft.Xrm.Data.Powershell和Microsoft.Xrm.Tooling.Connector(确保两者依赖的SDK版本一致)。

3. 避免不必要的类型强制转换

你的代码中尝试强制转换ExecuteCrmOrganizationRequest的返回值为Microsoft.Crm.Sdk.Messages.PublishThemeResponse,这同样可能因为命名空间/版本问题导致失败。实际上,PowerShell可以自动处理返回值的类型,无需显式强制转换,去掉类型转换即可避免额外的错误。

内容的提问来源于stack exchange,提问作者JBourne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:19:44