Problèmes avec ReportViewer assemblées dans VS2010
Je suis en utilisant le ReportViewer 10.0.0.0 de VisualStudio2010 dans mon Application Web et je vais avoir des problèmes avec ses assemblées.
Le serveur ont ReportViewer 8.0.0.0 et 9.0.0.0 installé et j'essaie d'éviter l'installation de la 10.0.0.0 version.
Je me suis demandé si il est possible d'utiliser le ReportViewer10 dll sur le serveur, même pas de l'avoir installé. J'ai mis le Build Action
propriété de la dll à Content
pour eux d'être copié à la sortie dossier bin. La propriété Copy to Output Directory
est Do not copy
.
Comme l'erreur suivante montre, mon projet est de trouver deux assemblées à partir de ReportViewer, l'un dans le GAC et l'autre dans la Temporary ASP.NET Files
. La recherche, j'ai aussi découvert que les Temporary ASP.NET Files
sont re-généré à chaque requête au serveur.
Essayer de résoudre mon problème, j'ai supprimé la dll à partir de la Temporary ASP.NET Files
et l'ensemble de la demande d'arrêt de travail, indiquant que ma demande a été à l'aide de la dll à partir de la Temporary ASP.NET Files
, pas de GAC ou le dossier bin. Je veux mettre mon application à utiliser la dll dans le dossier bin OU le Temporary ASP.NET Files
, parce que dans ces lieux, la dll est dans sa version correcte (10.0.0.0). L'erreur ci-dessous montre un conflit entre le ReportViewer9 dll à partir de GAC et ReportViewer10 dll à partir de Temporary ASP.NET Files
.
An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
CS0433: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both
'c:\\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\projectec9147f\d072b522\assembly\dl32a86a1An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
CS0433: The type 'Microsoft.Reporting.WebForms.ReportViewer' exists in both
'c:\\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll' and 'C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\project\4ec9147f\d072b522\assembly\dl3\662a86a1\009c93d3_afeccc01\Microsoft.ReportViewer.WebForms.DLL'
Line 180:
Line 181: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
Line 182: private global::Microsoft.Reporting.WebForms.ReportViewer @__BuildControlReportViewer1() {
Line 183: global::Microsoft.Reporting.WebForms.ReportViewer @__ctrl;
Line 184:
Source File: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\project\4ec9147f\d072b522\App_Web_default.aspx.cdcab7d2.dmkwuxko.0.cs
Line: 182
9c93d3_afeccc01\Microsoft.ReportViewer.WebForms.DLL'
Line 180:
Line 181: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
Line 182: private global::Microsoft.Reporting.WebForms.ReportViewer @__BuildControlReportViewer1() {
Line 183: global::Microsoft.Reporting.WebForms.ReportViewer @__ctrl;
Line 184:
Source File: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\projectec9147f\d072b522\App_Web_default.aspx.cdcab7d2.dmkwuxko.0.cs
Line: 182
OriginalL'auteur MMalke | 2012-02-24
Vous devez vous connecter pour publier un commentaire.
Mon problème a été résolu de la manière suivante:
J'ai quitté la dll être référencé par mon projet, mais je les ai supprimées de la corbeille. De cette façon, la dll a cessé d'être re-généré à l'intérieur de Temporaire ASP.NET dossier de Fichiers, de mettre fin au conflit:
De la Visionneuse de rapports ne gardaient pas de travail, comment il a été prévu (GAC a seulement les versions 8 et 9 de la dll). Puis la Visionneuse de Rapports 10.0.0.0 a été installé sur le serveur, et cette fois, un nouveau message d'erreur est affiché:
Je pensais que c'était étrange que ce conflit qui s'était passé entre les différentes versions des dll, et cette fois, la solution était d'ajouter la balise suivante pour le web.fichier de configuration:
Fait. Il a travaillé sans aucun conflit et qu'il était possible d'exporter les rapports.
Mon problème a été résolu, mais j'ai toujours un doute, et j'espère que quelqu'un peut m'aider:
Pourquoi le serveur a eu le conflit entre les deux dll à partir de GAC_MSIL dans les différentes versions? Ne pas le serveur de regarder uniquement pour la version que j'ai citées dans mon projet et qui est spécifié dans le Web.config? (10.0.0.0)
N'a aucune relation avec la machine.fichier de config?
OriginalL'auteur MMalke