如何将注册表中存储为REG_SZ的字符串插入路径?我想要做的是设置.csproj引用我们注册表中的预定义路径,但是当我搜索所有我看到的是%PATH%env变量如何存储在注册表中。这是我想要做的一个例子:
<Reference Include="Interop.SienaASAP2, Version=1.3.0.0, Culture=neutral, PublicKeyToken=89a52a4f35bb97a3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\Bin\Interop.SienaASAP2.dll</HintPath>
</Reference>
如果“.. \ .. \ .. \”,我想在[HKEY_CURRENT_USER \ Software \ MyCompany \ DefaultVersion \ Folder]中插入路径。对此的任何帮助将不胜感激。
答案 0 :(得分:0)
使用开箱即用的行为,您无法通过引用环境变量让Visual Studio使用HintPath。
这是Visual Studio从MSDN Article
中重新引用引用的方式在构建时,Visual Studio .NET 解析程序集引用 搜索以下位置 以下顺序:
在其中一个项目文件夹中查找程序集。这假定你 已将程序集添加到项目中 使用“添加现有项”菜单 选项。项目文件夹包括任何 Solution Explorer显示的文件夹 (显示所有文件时除外) 效果)。
查看在的ReferencePath属性中列出的文件夹 项目中的元素 用户选项文件。这个属性可以 包含逗号分隔的列表 文件夹。
使用
<HintPath>
元素 项目文件。查看由注册表设置标识的一组文件夹。这些是 显示包含程序集的那些 在添加引用的.NET选项卡上 对话框。有关详细信息,请参阅 使用Add的.NET选项卡 参考对话框。
- 醇>
在项目下方的obj子文件夹中查找COM Interop程序集 夹。有关详细信息,请参阅 引用COM对象。
然而,第四个选项可以帮助您只是将路径添加到这些注册表项之一,然后它将工作而不会弄乱HintPath
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\AssemblyFolders