如何将 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 <compilation>
部分中的任何基于 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 文件?的主要内容,如果未能解决你的问题,请参考以下文章