Crystal reports真的减慢了asp.net网站的建设速度,有没有排除它们的方法?

Crystal reports真的减慢了asp.net网站的建设速度,有没有排除它们的方法?,asp.net,crystal-reports,build-process,build,Asp.net,Crystal Reports,Build Process,Build,作为“asp.net网站项目”的一部分,他正在帮助一位拥有100多份“Crystal Reports 2008”报告的朋友 我不知道如何/为什么,但当这个“asp.net网站”项目正在构建时,它会花费大约15分钟“构建”所有Crystal报表所在的报表目录 Crystal Reports files.rpt甚至可以构建/编译吗?实际上,看起来它们可以是嵌入式资源。例如,根据本文,您应该能够通过属性更改报表是否嵌入,但在“asp.net网站项目”中,当报表在sol exp中突出显示时,这些属性不可

作为“asp.net网站项目”的一部分,他正在帮助一位拥有100多份“Crystal Reports 2008”报告的朋友

我不知道如何/为什么,但当这个“asp.net网站”项目正在构建时,它会花费大约15分钟“构建”所有Crystal报表所在的报表目录

Crystal Reports files.rpt甚至可以构建/编译吗?实际上,看起来它们可以是嵌入式资源。例如,根据本文,您应该能够通过属性更改报表是否嵌入,但在“asp.net网站项目”中,当报表在sol exp中突出显示时,这些属性不可用

当网站建立和发布时,所有报告文件仍放在相应的报告文件夹中


所以我想,我的问题是,有没有办法阻止VS在“网站项目”中构建水晶报表?这只需要花很长时间,简直让人无法忍受。

我们在许多不同的应用程序/网页中使用crystal reports。在这两个项目中,我们实际上都没有将报表文件本身包含在VisualStudio项目中。我们将这些文件放在类似于a/Reports的子目录中,然后按文件名引用它们。我们仍然在使用一个相当旧的Crystal版本,但我不认为他们会拿出类似的东西

我们使用如下代码:

Dim myRpt As New ReportDocument
Select Case strFormNum
    Case "M5044b"
        strReportPath = Server.MapPath("/Reports/M5044b.rpt")
    <..Snip a lot of case statements...> 
    Case "M5238aWithAI"
        strReportPath = Server.MapPath("/Reports/M5238a_WithAI.rpt")
End Select

myRpt.Load(strReportPath)

myRpt.SetDatabaseLogon(strCRUser, strCRPassword, strCRServer, strCRDB)

myRpt.SetParameterValue("@nIndex", intNewIndex)

myRpt.DataDefinition.FormulaFields.Item("Version").Text = "'Report Printed: " & Now().ToString & "'"

oStream = myRpt.ExportToStream(ExportFormatType.PortableDocFormat)
Dim myRpt作为新报告文档
选择Case strFormNum
案例“M5044b”
strReportPath=Server.MapPath(“/Reports/M5044b.rpt”)
案例“M5238aWithAI”
strReportPath=Server.MapPath(“/Reports/M5238a_with ai.rpt”)
结束选择
myRpt.Load(strReportPath)
myRpt.SetDatabaseLogon(strCRUser、strCRPassword、strCRServer、strCRDB)
myRpt.SetParameterValue(“@nIndex”,intNewIndex)
myRpt.DataDefinition.FormulaFields.Item(“Version”).Text=“'Report Printed:&Now().ToString&'”
oStream=myRpt.ExportToStream(ExportFormatType.PortableDocFormat)

您需要确保没有在每个报表上运行自定义工具。默认情况下,当您将crystal报表添加到项目中时,它将关联这个为报表生成包装类的自定义工具。按文件名引用报告要快得多(正如Josh W.所演示的),并将报告保留在程序集之外

谢谢你的建议。事实证明,它被设置为作为一种资源嵌入。近百个资源扼杀了构建。将其设置为false,构建将在不到一分钟内完成

<businessObjects>
    <crystalReports>
        <rptBuildProvider>
            <add embedRptInResource="false"/>
        </rptBuildProvider>
    </crystalReports>
</businessObjects>