如何从组织中恢复非托管插件
How can I revert an unmanaged plugin from an org
我正在使用 dynamics crm 8.1。
我已连接到一个组织,该组织具有传统上作为托管解决方案的一部分部署到该组织的插件。我使用插件注册工具覆盖了一个插件。这个插件现在大概是一个非托管资产,我希望它始终位于作为解决方案一部分部署的托管版本之上。
如何从组织中删除插件的非托管版本,以便托管解决方案的未来升级将应用于该组织?我假设这涉及某种 crm 脚本。
谢谢!
插件程序集的非托管版本不会 "sit on top" 托管版本。它只是取代了托管版本。换句话说,这个解决方案组件的行为与例如不同。实体形式和标签。
重新导入托管解决方案或升级托管解决方案(如果这样更方便)。这会自动将您的非托管插件转换为托管版本。
通过一些数据库逆向工程,我找到了我自己问题的答案。这个过程对我有效,但我不能保证它对每个人都有效。
当使用插件注册工具替换插件程序集时,它会做三件事。
1) 该插件的 PluginAssemblyBase 记录的 OverwriteTime 列将被修改。
2) 将为您刚刚添加的插件程序集添加一个新的 PluginAssemblyBase 记录。
3) DependencyNodeBase 记录的TopSolutionId 列中的记录将被插件修改。
使用以下 SQL 查询执行此反转过程:
BEGIN TRANSACTION
DELETE dbo.PluginAssemblyBase
WHERE PluginAssemblyIdUnique <> @originalPluginAssemblyIdUnique and Name = @assemblyName and OverwriteTime = 0
UPDATE dbo.PluginAssemblyBase SET
OverwriteTime='1900-01-01 00:00:00.000'
WHERE PluginAssemblyIdUnique = @originalPluginAssemblyIdUnique
UPDATE dbo.DependencyNodeBase SET
TopSolutionId = @ManagedSolutionId
WHERE Objectid = @pluginAssemblyId
COMMIT TRANSACTION
其他人可以使用该脚本,但除了设置变量外,您可能还想在其中添加一些验证,以免在错误的情况下使用它。
我正在使用 dynamics crm 8.1。
我已连接到一个组织,该组织具有传统上作为托管解决方案的一部分部署到该组织的插件。我使用插件注册工具覆盖了一个插件。这个插件现在大概是一个非托管资产,我希望它始终位于作为解决方案一部分部署的托管版本之上。
如何从组织中删除插件的非托管版本,以便托管解决方案的未来升级将应用于该组织?我假设这涉及某种 crm 脚本。
谢谢!
插件程序集的非托管版本不会 "sit on top" 托管版本。它只是取代了托管版本。换句话说,这个解决方案组件的行为与例如不同。实体形式和标签。
重新导入托管解决方案或升级托管解决方案(如果这样更方便)。这会自动将您的非托管插件转换为托管版本。
通过一些数据库逆向工程,我找到了我自己问题的答案。这个过程对我有效,但我不能保证它对每个人都有效。
当使用插件注册工具替换插件程序集时,它会做三件事。
1) 该插件的 PluginAssemblyBase 记录的 OverwriteTime 列将被修改。 2) 将为您刚刚添加的插件程序集添加一个新的 PluginAssemblyBase 记录。 3) DependencyNodeBase 记录的TopSolutionId 列中的记录将被插件修改。
使用以下 SQL 查询执行此反转过程:
BEGIN TRANSACTION
DELETE dbo.PluginAssemblyBase
WHERE PluginAssemblyIdUnique <> @originalPluginAssemblyIdUnique and Name = @assemblyName and OverwriteTime = 0
UPDATE dbo.PluginAssemblyBase SET
OverwriteTime='1900-01-01 00:00:00.000'
WHERE PluginAssemblyIdUnique = @originalPluginAssemblyIdUnique
UPDATE dbo.DependencyNodeBase SET
TopSolutionId = @ManagedSolutionId
WHERE Objectid = @pluginAssemblyId
COMMIT TRANSACTION
其他人可以使用该脚本,但除了设置变量外,您可能还想在其中添加一些验证,以免在错误的情况下使用它。