|
|
1
37
避免
动态链接库地狱
我建议你创建一个
还要确保不要将引用的程序集放入gac中,因为它们可能会首先被拾取。 |
|
|
2
8
你可以尝试的选择很少。
|
|
|
3
8
为了克服这个问题,我删除了所有引用,然后重新添加它们。我不知道为什么这是解决办法。 在一个项目中,可能有一个dll不正确,正是这个不正确的dll被visual studio拖入并使用。 编辑: 发生此错误的其他时间是由于当前项目中引用的ddl(a)也被另一个dll(b)引用。不重建另一个dll(b)似乎会阻止vs在当前项目中引用dll(a)的正确版本,从而导致使用较旧版本的dll(a)。 |
|
|
4
2
是否尝试将引用添加为项目引用?即添加引用…->项目选项卡->选择项目 |
|
5
2
我们(作为团队中唯一的.NET开发人员,我的意思是我)也遇到了同样的问题。我把它追溯到一个被引用的dll,它又引用了遭受版本控制的dll。似乎是因为我没有更新所有 反过来 引用dll时,它在生成过程中的某个时刻被旧版本替换。 我遇到的一个症状是,当我在代码编辑器中时,我添加到引用项目中的新类将被适当地着色,但是当我点击build时,它将变回黑色,并且我得到一条消息,说该类不存在(以及一个非常讽刺的“ar you missing an程序集引用?”)。这使我相信问题必须在构建阶段发生。 因此,我建议构建任何其他指向此dll的项目,并重新添加它们的引用。 |
|
|
6
1
wpftoolkit也遇到了类似的问题。我们刚刚升级到2010年2月的版本(使用3月5日的msi)。“添加引用”会在正确的位置显示正确的文件,但会列出旧版本。但是,物理文件具有正确的版本。已从注册表中卸载、手动删除任何wpftoolkit引用,等等,但都无效。它一定是把这些东西藏在某个地方了,但我们还没搞清楚。在这上面浪费时间。 |
|
|
7
0
启用fusionlog,在加载dll失败后,打开文件夹c:\ fusionlog\default\devenv.exe中具有dll名称的文件。这将显示实际加载dll的路径。 在我看来,一个旧版本神秘地出现在 C:\程序文件\Microsoft Visual Studio 10\Common7\IDE! 为了防止这种情况再次发生,我在Common7 IDE上为每个人添加了一个安全规则“拒绝写入”。 |
|
|
8
0
我有一个类似于这里所描述的问题,只是我的问题解决方案与我如何编译代码有关。构建、清理和重建之间有区别。在我的例子中,我只是在我的更改和依赖解决方案中的dll之间使用一个构建,而不是将所有更改都带到设置了引用的另一个解决方案中。我通过使用rebuild解决了这个问题,rebuild可以清除、编译和链接所有源文件,而不管它们是否更改。然后,第一个解决方案中的dll被更新并自动复制到第二个解决方案中,在第二个解决方案中设置了引用并解决了问题。 干杯,我希望这有帮助。 |
|
|
9
0
类似的症状-问题出现在项目属性reference的“reference path”中。 完整说明和解决方案如下: Referenced assemblies automatically replaced by visual studio Visual Studio/22810867 22810867 |
|
|
10
0
看看这些:
在本例中,假设您已将abc.dll从版本1更新到版本2,并在Web应用程序中重新引用。但是,在生成过程中,abc.dll的版本2将更改回版本1,因为xyz.dll使用版本1,而web应用程序在xyz.dll的自动更新期间将abc.dll版本2重写回abc.dll版本1。 解决方案:将abc.dll版本2的更新版本也放在xyz.dll的类项目bin中 希望以上细节能有所帮助,祝你好运 |
|
|
11
0
一个可能的原因是引用路径。如果有任何对旧dll文件夹的引用,vs将使用它作为主引用,即使您添加了新的dll引用。 |