gpt4 book ai didi

.net - 在vb.net 3.5项目中引用2个使用相同命名空间的dll?

转载 作者:行者123 更新时间:2023-12-02 09:16:38 24 4
gpt4 key购买 nike

我有一个 vb.net 3.5 类库项目,需要引用两个具有相同命名空间的程序集。我们有两个第三方 dll,其中一个是 5.1 版本,另一个是 6.1 版本。它们具有相同的 dll 文件名,并且使用相同的命名空间和函数/类名。项目需要根据具体情况使用其中一种。

我调查了一个 C# 进程,该进程使用“外部别名”功能来引入不同的程序集。

http://blogs.msdn.com/b/ansonh/archive/2006/09/27/774692.aspx

What use is the Aliases property of assembly references in Visual Studio 8

这个功能似乎对于 vb.net 来说并不完全可用。

我尝试过的事情

我已重命名第二个 dll 并将两个引用添加到我的项目中。此时我得到了很多:“blah”在命名空间中不明确

所以我需要给不同的版本起别名。在 vb.net 中,您可以在导入语句上使用别名,例如:

Imports version5 = Somedll.Something

问题是我无法为不同版本的 dll 设置程序集引用别名。显然,在 vb.net 中,您无法在引用属性窗口中设置这些。所以我尝试将它们设置在我的项目文件中,如下所示:

<Reference Include="somedll.5.Navigation">
<HintPath>..\..\Utility\ThirdPartyDLLS\somedll.5.dll</HintPath>
<Aliases>SomeDLL5</Aliases>
<Private>False</Private>
</Reference>
<Reference Include="somedll.6.Navigation, Version=6.1.0.0, Culture=neutral, PublicKeyToken=6d02be8724ca751c, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Utility\ThirdPartyDLLS\somedll.6.dll</HintPath>
<Aliases>SomeDLL6</Aliases>
<Private>False</Private>
</Reference>

然后我希望这能起作用:

Imports version5 = SomeDLL5.Something
Imports version6 = SomeDLL6.Something

但是“SomeDLL5/6”没有出现在智能感知中。那么如何在同一个项目中引用这两个 dll 呢?

最佳答案

我是 VB 规范负责人。恐怕没有 VB 方法可以做到这一点(缺乏反射(reflection),正如 DaMartyr 所说)。我知道这很麻烦。我会将其列入我们下一次 VB 语言设计 session 的议程中。

关于.net - 在vb.net 3.5项目中引用2个使用相同命名空间的dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6521359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com