我们正在使用Visual Studio 2010,并在解决方案中拥有一堆项目。每当我们向项目添加对外部dll的引用时,该引用通常会被添加为相对路径,如:
<Reference Include="SomeReference">
<HintPath>
..\..\..\MyLibCatalog\SomeRef.dll</HintPath>
</Reference>
如果我们现在显示表示引用的dll的节点的属性(来自解决方案资源管理器),它将显示为例如:
C:\MyLibCatalog\SomeRef.dll
但是在项目文件中(右键单击项目节点并选择“编辑项目文件”),实际引用仍然是相对的(类似..\..\..\MyLibCatalog\SomeRef.dll
)。
我们构建我们的系统并在外部系统中运行一些测试,为了使其正常工作,我们需要这些引用是绝对的,而不是相对的。目前,这意味着每次添加这样的引用时都会手动编辑项目文件。除了烦恼之外,这个“修复”很容易忘记。
因此,我的问题:有没有办法让VS2010从一开始就将HintPath添加为绝对路径?
答案 0 :(得分:0)
解决方案构建环境此处提供的VS加载项http://workspacewhiz.com/OtherAddins.html可能是您的解决方案。没有尝试使用VS 2010,但提供了消息来源,我想它们可以根据您的需求轻松定制。
Solution Build Environment加载项具有一个特殊符号,用于将相对路径扩展为绝对形式。通过在行的开头插入感叹号来触发路径的绝对扩展。
RELPATH = C:\ Windows \ System32下.. !ABSPATH = $(RELPATH)#c:\ Windows
解决方案构建环境加载项在解决方案打开时以及每次构建开始之前执行这些转换,相应地重置构建的环境变量。
答案 1 :(得分:0)
也许这是你使用相对路径的方式。如果将依赖项放在源代码树中的Dependencies文件夹中(就像我们一样),那么它们就在您的修订控制系统中,您可以在任何系统上查看代码,并始终确保二进制文件与代码匹配。
如果使用绝对路径,那么您可能难以复制构建,因为您如何知道构建/测试哪些二进制文件?
我建议选择相对路径。