0

与此处的此问题相关,我正在尝试创建一个安装程序,该安装程序在目标用户的 PC 上安装 DLL 并使它们可用于 Visual Studio 参考管理器(项目 > 添加参考)

我发现要使 .NET4.0 参考管理器可以看到程序集,我需要添加此注册表项

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 时,我看到类似这样的东西

在此处输入图像描述

所以我的问题是,将多个 DLL 编译到不同的 .NET 框架(例如 .NET4.0、.NET4.0 客户端配置文件、.NET4.5)并针对不同的机器(x86、x64、AnyCPU)的最佳实践是什么) 以便在添加引用中只显示一个版本或以便可以在添加引用对话框中区分版本?

4

1 回答 1

0

一般来说,最好的做法是不要弄乱用户的注册表。请注意,程序员不会期望在框架列表中找到非 Microsoft 程序集,因此可能永远不会去那里查看。增加的便利性相当小,用户可以简单地使用浏览按钮来选择您复制到他机器上的参考程序集。尽管您确实需要向他提供有关查看位置的提示。当您使用标准的 c:\program files\company\product 命名策略时,问题不大。

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

于 2013-04-10T10:36:51.897 回答