【发布时间】:2019-05-09 14:55:06
【问题描述】:
我有一份在 Visual Studio 2017 社区版上使用 SQL 的报告。我有一个正在使用的自定义库程序集,用于从数据字段生成条形码作为图像。 该程序集需要 DLL 文件和 Systems.Drawing 程序集。我添加了这两个并输入了一些代码:
Public Function Convert(Text As String) As Byte()
Dim b As System.Drawing.Bitmap
' Dim bar As New BarcodeLib.Barcode
bar.Alignment = BarcodeLib.AlignmentPositions.TOPCENTER
bar.IncludeLabel = False
bar.RotateFlipType = Drawing.RotateFlipType.RotateNoneFlipNone
b = bar.Encode(BarcodeLib.TYPE.CODE39Extended, Text, 400, 30)
Dim bitmapData As Byte() = Nothing
Using ms As New System.IO.MemoryStream()
b.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp)
bitmapData = ms.ToArray()
End Using
Return bitmapData
End Function
请注意:Bar 是类的参考名称
当我尝试使用或不使用条形码生成来预览或构建报告时,它都会失败。 错误是:
[rsCompilerErrorInCode] 自定义代码第 3 行出现错误 [VC30007] 组装 netstandard 需要引用 .... 包含基类 System.Enum 向您的项目添加一个。
[rsCompilerErrorInClassInstanceDeclaration] 组装 netstandard 所需的参考,包含命令类 System.Object 向您的项目添加一个。
据我所知,您不能只添加这些,因为 SSRS 似乎没有任何 NuGet 或包支持来允许我做这样的事情。
我在几乎所有可能的位置列出了这个条形码 dll,在服务器上、我的程序文件、MSbuild、服务器上的 Reporting Services bin 文件夹、IDE 公用和专用。 我确实尝试从 MSBuild 加载只是为了获取程序集引用与程序集清单版本不匹配。尽管它们是一样的。 我确实尝试在 C# 中编辑代码以包含 for netstandard,即使它通过这个项目上的 nuget 连接。
我希望图像可以使用 =Code.Convert(TEXT) 或 =Code.Convert(databasefield) 进行转换,但它还没有到这一步。即使没有图像或对代码本身的引用,构建错误也会首先生成。
【问题讨论】:
标签: c# reporting-services .net-assembly .net-standard