如何将 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?

Posted

技术标签:

【中文标题】如何将 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?【英文标题】:How to add a reference to System.Data.DataSetExtensions to a Web Site ascx.cs file? 【发布时间】:2015-07-12 11:01:09 【问题描述】:

我们正在处理一个网站项目并尝试引用System.Data.DataSetExtensions。 (使用 Web 应用程序会更好;不过,技术负责人有她的理由。)

这是我们尝试过的:

    找到组装路径。 打开 Visual Studio 命令提示符并运行 sn.exe -T "full\path.dll" 根据公钥令牌将以下内容添加到 web.config。

web.config > system.web >

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <!-- Other assemblied omitted -->
    <add assembly="System.Data.DataSetExtensions, 
        Version=4.0.0.0, 
        Culture=neutral, 
        PublicKeyToken=B77A5C561934E089" />
  </assemblies>
</compilation>

完整路径为C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.DataSetExtensions.dll

尽管如此,当我们将using System.Data.DataSetExtensions 添加到代码隐藏文件时,msbuild 仍然会报错。是什么赋予了?我们如何解决这个问题?

【问题讨论】:

【参考方案1】:

简答

问题在于我们的using 声明。所以,有两个要求。

    在 web.config 文件中引用 System.Data.DataSetExtensions。 (请参阅下文以查找完整的程序集名称。) 在 C# 文件中为 System.Data 添加 using 语句。

问题是我们的 using 语句是针对System.Data.DataSetExtensions

说明

Rick Strahl explains 默认情况下 ASP.NET 包括:

bin 路径中的所有程序集 web.config &lt;compilation&gt; 部分中的任何基于 GAC 的程序集引用

此外,我们能够从 Visual Studio 命令提示符查询 GAC,如下所示:

> gacutil /l System.Data.DataSetExtensions

Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.17929
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:
  System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL
  System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL

Number of items = 2

这证实了我们想要的程序集在 GAC 中。它还列出了我们需要在 web.config 文件中引用的程序集的全名。

【讨论】:

我们需要将程序集复制到 bin,而不是在 web.config 中引用它。这似乎是错误的解决方案。 @xanatos 为什么这似乎是错误的解决方案?什么是替代方案?我缺乏网站项目的经验。 配置文件肯定有问题...但我知道复制bin文件夹中的Microsoft程序集不是正确的解决方案。 @xanatos 感谢您的反馈。事实证明,问题不在于 web.config 文件,而在于我们执行 using 语句的方式。

以上是关于如何将 System.Data.DataSetExtensions 的引用添加到网站 ascx.cs 文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何将Ios文件上传到

Qt如何将文字变成图片?

如何将Bitmap保存为本地图片文件?

在MATLAB中如何将图导出

ASP如何将SQLSERVER数据导出到DBF(VF)

如何将CSV格式转换成JSON格式