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

我们正在使用Web站点项目并尝试引用System.Data.DataSetExtensions 。 (使用Web应用程序会更好;但技术主管有她的理由。)

这是我们尝试过的:

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

web.config> system.web>

       

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

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

简答

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

  1. 参考web.config文件中的System.Data.DataSetExtensions 。 (见下文查找完整的程序集名称。)
  2. 在C#文件中为System.Data添加using语句。

问题是我们的using语句用于System.Data.DataSetExtensions

说明

Rick Strahl解释说默认ASP.NET包括:

  • bin路径中的所有程序集
  • web.config 部分中的任何基于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 

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