我在报表生成器上使用自定义程序集时遇到问题。我设法将我的程序集添加到 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 转换为图像并将其显示在报告上的唯一选择。