0

我在报表生成器上使用自定义程序集时遇到问题。我设法将我的程序集添加到 Report Builder 并允许它在文本框中显示一个单词“Hello”。当我开始添加稍微复杂的代码时,比如将 Ghostscript.NET 代码添加到我的程序集中,我遇到了很多障碍。

这些是我遇到问题的代码:

    public PDFToImage(string path)
    {
        string directory = Path.GetDirectoryName(Assembly.GetAssembly(typeof(PDFToImage)).Location);
        //_versionInfo = new GhostscriptVersionInfo(directory+@"\gsdll64.dll");

        //_pdfURL = path;
        //_initialize();
    }

这里使用的“目录”变量是获取gsdll64.dll所在的当前程序集目录的目录。因此,我可以将它传递给 GhostscriptVersionInfo 构造函数。

但是在运行报告时我收到了来自报告生成器的错误:

请求“System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限失败

在 Report Builder Policy 文件“RSPreviewPolicy.config”中,我添加了一些代码组并为 FileIOPermission 添加了一个权限集:

<CodeGroup class="UnionCodeGroup"
                        version="1"
                        PermissionSetName="FullTrust"
                        Name="MyCodeGroup"
                        Description="Code group for my data processing extension">
                        <IMembershipCondition 
                           class="UrlMembershipCondition"
                           version="1"
                           Url="C:\Program Files (x86)\Microsoft SQL Server\Report Builder 3.0\Spark.Conversion.Document.dll"
                        />
                      </CodeGroup>
                      <CodeGroup class="UnionCodeGroup"
                        version="1"
                        PermissionSetName="IOPermission"
                        Name="MyCodeGroup"
                        Description="Code group for my data processing extension">
                        <IMembershipCondition 
                           class="UrlMembershipCondition"
                           version="1"
                           Url="C:\Program Files (x86)\Microsoft SQL Server\Report Builder 3.0\Spark.Conversion.Document.dll"
                        />
                      </CodeGroup>
                      <CodeGroup class="UnionCodeGroup"
                        version="1"
                        PermissionSetName="IOPermission"
                        Name="MyCodeGroup"
                        Description="Code group for my data processing extension">
                        <IMembershipCondition class="UrlMembershipCondition"
                           version="1"
                           Url="C:\Program Files (x86)\Microsoft SQL Server\Report Builder 3.0\Ghostscript.NET.dll"
                        />
                      </CodeGroup>
                      <CodeGroup class="UnionCodeGroup"
                        version="1"
                        PermissionSetName="FullTrust"
                        Name="MyCodeGroup"
                        Description="Code group for my data processing extension">
                        <IMembershipCondition class="UrlMembershipCondition"
                           version="1"
                           Url="C:\Program Files (x86)\Microsoft SQL Server\Report Builder 3.0\Ghostscript.NET.dll"
                        />
                      </CodeGroup>

但没有任何效果。我担心如果我解决了这个问题,接下来会调用 GhostscriptVersionInfo 行,这是第二行代码。

有谁可以给​​我一些想法如何解决这个问题?这是我将 pdf 转换为图像并将其显示在报告上的唯一选择。

4

0 回答 0