【问题标题】:How to get an ASP.NET WebSite to use the right assembly (File reference instead of path/GAC)如何让 ASP.NET 网站使用正确的程序集(文件引用而不是路径/GAC)
【发布时间】:2011-05-19 15:45:44
【问题描述】:

我最近开始使用 Jenkins 来简化应用程序开发。我有一个 Asp.net 网站,我正在尝试使用它进行部署。

关于构建的详细信息:

  • 使用 Jenkins 从 Visual Source Safe 中检索项目。
  • Is 然后使用 msbuild 编译
  • 一旦构建完成,就会部署到测试服务器。

编译运行良好,没有错误,没有警告。

当我将 Web 应用程序从 PrecompiledWeb 文件夹复制到测试服务器时,当我执行某些操作时应用程序崩溃。我得到的异常如下:

Exception type: FileLoadException 
    Exception message: Could not load file or assembly 'Oracle.DataAccess, 
    Version=2.111.7.20, Culture=neutral, PublicKeyToken=89b483f429c47342' or 
    one of its dependencies. The located assembly's manifest definition
    does not match the assembly reference. 
    (Exception from HRESULT: 0x80131040)

但是,如果我从网站文件夹中复制 Web 应用程序,一切正常。

注意:所有非 Microsoft 程序集都存储在解决方案级别的名为 Assemblies 的文件夹中。项目中的所有引用都指向该文件夹的程序集。

有什么方法可以找到冲突的来源,以便我可以使用 PrecompiledWeb 文件夹进行部署。

编辑: 我的项目中似乎引用了不止一个程序集,但我不知道如何只获得一个。我签入了对象浏览器,选择了我的解决方案,我得到以下信息

似乎是网站项目引起了麻烦(当我从解决方案中删除它时,对象浏览器中只显示了正确的程序集)。

【问题讨论】:

    标签: .net msbuild reference jenkins


    【解决方案1】:

    以 XML 格式打开项目文件并找到有问题的参考。更改它,使其没有强大的程序集名称,例如,

    <Reference Include="Oracle.DataAccess, Version=2.102.2.20, Culture=neutral, PublicKeyToken={SOME-KEY}, processorArchitecture=MSIL" />
    

    ...具有非限定名称和指向代码库中已签入程序集的位置的 HintPath,

    <Reference Include="Oracle.DataAccess">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\Oracle\Oracle.DataAccess.dll</HintPath>
    </Reference>
    

    (当然,我只是在编这些细节,没有Oracle)

    请注意,如果您当前的 Referenc 似乎已经正确设置了 HintPath 并不重要,如果它具有强程序集名称,那么 GAC 中的任何内容都将具有优先权。

    【讨论】:

    • 嗯...我不能在网站中这样做,你没有可以作为 XML 打开的项目文件
    【解决方案2】:

    在您的 Visual Studio 项目中,当您在 References 中选择该 DLL 并查看其属性时,Copy Local 是否设置为 true?如果不是,则 DLL 可能不会被复制到输出文件夹。

    【讨论】:

    • 这是一个网站项目,所以我不能在参考上选择复制本地。实际上,添加对 WebSite 的引用只是将其复制到 bin 中。当我在属性页中查看项目时,没有在此处添加引用(我的猜测是它可能会尝试使用 GAC)
    猜你喜欢
    • 2013-07-31
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多