如何在Visual Studio参考管理器中并排安装.NET4.0,.NET4.5,x86,AnyCPU DLL

时间:2013-04-10 09:22:34

标签: visual-studio-2010 dll deployment visual-studio-2012

this question here相关,我正在尝试创建一个安装程序,在目标用户的PC上安装DLL,并将它们提供给Visual Studio Reference Manager(项目>添加引用)

我已经想到要使.NET4.0 Reference Manager可以看到程序集,我需要添加这个注册表项

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\MyAsm
Value: <Directory on target PC of .NET4.0 assembly>

对于.NET4.5,我需要这个键

Key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.5.50709\AssemblyFoldersEx\MyAsm
Value: <Directory on target PC of .NET4.5 assembly>

但是我现在有一个问题。当我转到Add-References时,我看到类似这样的内容

enter image description here

所以我的问题是,这里最好的做法是分发多个编译到不同.NET框架的DLL(例如.NET4.0,.NET4.0 Client Profile,.NET4.5)并针对不同的机器(x86, x64,AnyCPU)所以只有一个版本出现在Add-References中,或者这些版本可以在Add-References对话框中区分出来吗?

1 个答案:

答案 0 :(得分:0)

一般来说,最佳做法是不要弄乱用户的注册表。请注意,程序员不希望在Framework列表中找到非Microsoft程序集,因此可能永远不会在那里查找。增加的便利性相当小,用户只需使用“浏览”按钮选择复制到其机器上的参考组件即可。虽然你确实需要向他提供一个关于在哪里看的提示。使用标准c:\ program files \ company \ product命名策略时没有太大问题。

避免重复是很容易的。如果程序集与.NET 4.0兼容,则只修改v4.0.30319密钥。以4.5为目标的项目将包括列表中的4.0程序集。如果由于某种原因需要4.5,请修改v4.5.50709密钥。