【问题标题】:Can't resolve project reference because of indirect dependency on current target framework由于对当前目标框架的间接依赖,无法解析项目引用
【发布时间】:2011-07-16 22:45:38
【问题描述】:

有人可以翻译成英文吗?

The primary reference
"Microsoft.SQLServer.ManagedDTS, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL"
could not be resolved because it has an indirect dependency on the .NET Framework assembly
"mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
which has a higher version "2.0.3600.0"
than the version "2.0.0.0" in the current target framework.

这是 MY PROJECT 的目标版本的问题,还是 .Net 和我尝试使用的 SQL Server 库之间的问题?

我需要以 .Net 2.0 为目标,但我不在乎什么子级别 (2.0.3600)。这可以改变吗?我在项目属性下查看并没有看到更改子级别(仅在.Net 2、3.5、4等之间)

我需要做些什么来解决这个问题?

【问题讨论】:

    标签: c# .net visual-studio-2010 ssis packages


    【解决方案1】:

    我在another forum 上发现了这个问题,至少已经解释过了。

    感谢您抽出宝贵时间发送给我们 这个问题。

    看来参考是 mscorlib 2.0.3600,这是 Beta 2 .NET 2.0。通常这只会 使用版本自行解决 正在发货的产品编号 高,但在这种情况下,Beta 2 数字实际上更高。哎呀……

    为了确定准确的位置 这个参考来自,我们 真的需要从一个详细的开始 日志。您可以通过执行 遵循 Visual Studio 命令 行:msbuild {项目名称} /v:d /t:重建 /fl

    这将创建一个 msbuild.log 文件。 请将此附加到错误中,以便 我们可以看看。

    如线程中所示,您可以 使用 app.config 进行重定向。 但是,这仅适用于和 可执行的,它只是创可贴的 真正的问题,那就是你是 使用我们的最新 DLL。

    你也可以使用 参考上的SpecificVersion=true。 然而,这击败了多目标, 并且是不受支持的高级 设想。这基本上是因为 一旦你这样做,你可能会得到其他 错误,你真的必须知道 你正在做什么来得到这个 工作。

    我们需要确定实际 引用 .NET v2.0 的程序集 Beta 2 以便我们确定如何 您可以获得最新版本的 非 Beta2 程序集。

    谢谢,

    Chuck England Visual Studio 平台 项目经理 - MSBuild

    还有两个可能的选项来修复它张贴。一种是使用具有正确清单的版本更新 GAC 中的 Microsoft.SQLServer.msxml6_interop.dll 的版本。我不确定您从哪里获得 dll,但值得阅读其他网站上的帖子。

    另一个选项是修改 .config 文件。

    这是他们对 .config 进行更改的内容,但发帖者说它在可执行文件中有效,但在类库中无效。希望对你有帮助。

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705">
         <dependentAssembly>
            <assemblyIdentity name="mscorlib" publicKeyToken="b77a5c561934e089" culture="neutral"/>
            <bindingRedirect oldVersion="2.0.3600.0" newVersion="2.0.0.0"/>
         </dependentAssembly>
        </assemblyBinding>
    </runtime> 
    

    【讨论】:

      【解决方案2】:

      我通过针对 .Net 版本 4 而不是 2 构建我的项目解决了这个问题(对于 SQL Server 2005)。

      【讨论】:

      • 你应该接受你自己的答案,而不是我的答案,因为它绝对比我的更容易和更可靠。 :-) 我喜欢这些观点,但我认为更重要的是让下一个人遇到同样的问题才能看到实际有效的答案。
      • 这是光荣和无私的。
      • 您说您需要以 .NET 2.0 为目标...那些需要保持 2.0 的项目呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 2021-07-03
      • 1970-01-01
      • 2013-05-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      相关资源
      最近更新 更多