更新版本化的.NET程序集引用

4
我有一个C++/CLI项目需要引用.NET程序集。
我已经通过进入项目属性并单击“添加新引用”,然后浏览到程序集位置(它不是解决方案的一部分,因此我无法创建项目对项目引用,并且.NET程序集不在GAC中,因此在查看要添加的引用时不在.NET选项卡中)。
当.NET程序集更新(也就是说,由于其具有版本控制,每天版本号会增加),C++/CLI项目会编译失败,因为它仍然引用旧版本。
我一直在使用的解决方法是删除.NET引用并重新添加,但这样做是不可行的。如何让它识别新版本的程序集?
注意:旧程序集被新程序集替换,因此它们位于同一位置,但是不知道应该使用新版本。

添加一个空的C#项目B,只需将新的.NET DLL复制到给定位置;然后让你的C++/CLI项目依赖于该项目B。不知道它是否能解决你的问题,但我认为值得一试。 - Matt
1个回答

2

使用文本编辑器打开项目,找到引用 .NET 程序集的引用标记,删除 Hintpath,并将 include 的值更改为 DLL 的相对路径,如下所示:

<Reference Include="\..\.\mydll.dll" />

你可以直接复制 Hintpath 的值到 include 标记中。


嗨,马特 - 谢谢。由于程序集已经版本化,我的引用标签有点不同:<Reference Include="MyDLL.dll, Version=30.0.0.72, Culture=neutral, PublicKeyToken=null"></Reference> - ryrich
我相信这就是他想让你改变它的原因。从引用标签中删除版本信息,它就不会对DLL进行版本检查了。我很想知道那是否有效。 - ScottTx
1
我已经删除了版本信息,现在看起来它可以工作了。现在我想一想,我想不出有哪些情况需要版本信息(至少就vcxproj而言)。我认为值得一提的是,如果您向C#项目添加一个带版本号的程序集引用,它不会添加版本信息。但某种原因,vcxproj文件包含了它! - ryrich
@ScottTx,是的,这正是我所想的。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接