gpt4 book ai didi

visual-studio-2008 - 如何使用 .vsprops 文件覆盖 MS Visual Studio 中的 VC++ 目录

转载 作者:行者123 更新时间:2023-12-04 14:36:27 27 4
gpt4 key购买 nike

我想覆盖 Visual Studio (devenv.exe) 用于编译器和库路径的目录。我知道如何通过工具->选项->VC++ 目录以交互方式执行此操作,但我想自动执行此操作。

http://msdn.microsoft.com/en-us/library/t9az1d21(VS.80).aspx对此有一个诱人的注释:“如果您想设置可由其他用户共享或可跨多台计算机应用的目录搜索路径(为您的项目),Visual C++ 提供了使用此对话框的替代方法,通过项目属性表。有关详细信息,请参阅属性表 (C++)。”

如果您点击 Property Sheets 文档的链接,这里有很多关于机制的信息,但没有关于您需要设置的实际属性的信息。

我在 %LocalAppData%\Microsoft\VisualStudio\8.0\VCComponents.dat(VS 2005 和 9.0 VS 2008)中找到了由 VC++ 目录对话框填充的信息;它似乎在 VC\VC_OBJECTS_PLATFORM_INFO\win32\Directories 和 ...\x64\Directories 下设置了各种属性。

有没有人以前这样做过并且知道从 VCComponents.dat 中使用的属性名称到 .vsprops 文件中使用的名称的映射是什么?

理想情况下,我希望它在 VS2005、VS2008 和 VS2010 中工作。

在 VS2010 中,Microsoft 已经完全取消了 View 选项下的 VC++ 目录对话框,将其设置为每个项目,因此现在您可以在项目属性而不是 View 选项中获得用于编辑这些目录的交互式 UI;这也意味着在属性管理器中有一个 UI;然后,如果您想对每台机器进行更改,而不是像以前那样针对每个项目进行更改,您只需按照您想要的方式设置一个属性表,然后让您的所有项目都继承它。这听起来比旧方法有了很大的改进。以及做我想做的事的直接方式。但仅在 VS2010 中。

但是,VS2005 和 VS2008 没有在项目或属性表中设置这些属性的 UI;我很高兴手工制作,但我不知道它应该是什么样子!

这是一个空的 VS 2005 .vsprops 文件:

<?xml version="1.0"?>
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="pathSettings"
>
</VisualStudioPropertySheet>

我安装了 VS 2010 并使用其简洁的新 GUI 在搜索目录中进行更改;它看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup>
<ExecutablePath>C:\Test;$(PATH)</ExecutablePath>
</PropertyGroup>
</Project>

但是,这在 VS2005 中无法逐字运行——VS2005 拒绝加载它(提示没有找到 DTD/模式声明)。

我将它放入容器中,作为回应,VS2005 告诉我“根据父元素‘VisualStudioPropertySheet’的内容模型,元素‘PropertyGroup’是意外的。期望:工具,UserMacro。” Tool 和 UserMacro 是 MSDN 页面示例中唯一显示的内容 [drat - StackOverflow 不会让我作为新用户在此处放置超链接 - 'property sheet tool usermacro' 的第一个 Google 搜索结果] - 也许那些VS2005 属性表中唯一合法的东西是什么?

最佳答案

首先,实际上有一个gui来编辑属性表,就像您谈论的所有VS版本下的项目属性一样。

View->Other Windows->Property Manager

打开一个窗口,您可以在其中查看所有项目配置和属性表层次结构。

属性表可用于覆盖 vcproj 文件具有的所有属性,并且还具有用户宏。
要覆盖您谈论的路径,这是 VS2008 的简要属性表,用于设置中间目录、输出目录、包含目录和库目录;将它放在属性管理器中的层次结构的顶部以确保它生效:
<?xml version="1.0" encoding="Windows-1252"?>
<!-- override paths -->
<VisualStudioPropertySheet
ProjectType="Visual C++"
Version="8.00"
Name="PathSettings"
IntermediateDirectory="$(TEMP)\$(ProjectName)_$(ConfigurationName)"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="d:\api\include"
/>
<Tool
Name="VCLibrarianTool"
OutputFile="c:\mylibs"
/>
<Tool
Name="VCLinkerTool"
OutputFile="c:\myoutput"
AdditionalLibraryDirectories="d:\api\_lib"
/>

这应该也适用于 VS2005,但不适用于 VS2010:因为您发现它使用不同的格式,所以您必须单独保留它们两个。

关于visual-studio-2008 - 如何使用 .vsprops 文件覆盖 MS Visual Studio 中的 VC++ 目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2284265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com