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

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

这是我们尝试过的:

  1. 找到组装路径。
  2. 打开 Visual Studio 命令提示符并运行 sn.exe -T "full\path.dll"
  3. 根据公钥令牌将以下内容添加到 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 仍然会报错。是什么赋予了?我们如何解决这个问题?

【问题讨论】:

    标签: c# .net msbuild


    【解决方案1】:

    简答

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

    1. 在 web.config 文件中引用 System.Data.DataSetExtensions。 (请参阅下文以查找完整的程序集名称。)
    2. 在 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 语句的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多