问题标签 [vcxproj]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - .vcxproj 和 .vcxproj.filters 中的工具版本之间的区别
我在 VS 2017 中有一个 C++ 项目。.vcxproj 文件中的工具版本为 15.0,而 .vcxproj.filters 中的工具版本为 4.0。
项目.vcxproj:-
Project.vcxproj.filters:-
我无法弄清楚这些工具版本之间存在差异的原因。谁能解释一下。
visual-studio-2017 - 使用 Visual Studio 2017 项目构建,但 _MSC_VER 显示 1900
我的项目有问题,也许有人可以给我一些提示。我在解决方案中有一个项目,该项目是上次使用Visual Studio 2015
. 现在,我想用Visual Studio 2017
.
%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64
所以,我用参数启动批处理文件。然后,我使用命令升级项目devenv solution.sln /Upgrade
。我看到以下输出:
在这个UpgradeLog.htm
,我只看到这个警告:
然后,在构建项目时,我在构建项目时看到此消息(我在这里删除了真实的项目名称,源文件的名称和真实的路径。这应该没有问题):
但后来,当我使用命令在文件project.lib
中搜索时,我得到了这个输出(几次):_MSC_VER
find "_MSC_VER" project.lib
但我希望得到这个输出(因为用 构建Visual Studio 2017
):
这怎么可能?
visual-c++ - 从版本控制接收时缺少 Visual C++ 附加目录
我有一个在一台计算机上开发的 Visual C++ 项目,并将其提交到存储库并将其拉到另一台计算机上。当我打开解决方案并尝试在另一台计算机上构建它时,解决方案将不会构建,并且在检查(属性 -> C/C++ -> 常规 -> 附加包含目录)以及链接器附加依赖项时为空。存储库中是否缺少我的东西?该 repo 包含解决方案和所有新编写的源文件和头文件,以及项目文件夹中的以下文件类型:
.vcxproj
.vcxproj.filters
过滤器文件似乎包含所有目录,但由于某种原因,解决方案无法识别它。有没有办法纠正这个问题,还是我必须再次进入兔子洞并重新手动包含目录?
visual-studio - 当(仅).exe 内容项脏时,如何让 VS 认为我的项目脏?
我的 C++ 项目包含一组(非代码)文件,需要逐字复制到输出目录。Content
我将它们作为节点添加到我的 .vcxproj并CopyToOutputDirectory
设置为PreserveNewest
. 例如:
这几乎可以工作;当我构建项目时,如果每个内容文件的时间戳比已经存在的时间戳更新,则每个内容文件都会正确复制到输出目录。但是......如果我更新其中一个内容文件而不同时修改实际编译的代码文件,Visual Studio 2017 会得出结论,该项目已经是最新的,不会构建,并且不会复制较新版本的内容文件到输出目录。对此我能做些什么吗?不起作用的事情:
- 设置
PublishState
为节点Prerequisite
下Content
- 将内容文件列为
DependentUpon
代码文件节点下的节点
编辑:经过进一步调查,该行为似乎取决于内容文件的扩展名。例如,dll 以我想要的方式运行(如果时间戳已更新,则项目标记为脏并构建),但 exe 不会。
c++ - Qmake 在为 VS2017 构建 dll 项目时将“1”附加到输出文件名
我在使用“Qt Vs Tools”插件从 qmake .pro 文件构建 VS2017 解决方案时遇到了一个问题。
当我试图表明我的输出文件是 a.dll
时,我遇到了令人困惑的行为。
我已经设置TEMPLATE = lib
并且不更改文件中的其他任何地方。根据文档告诉我的内容,我需要做的就是追加dll
到CONFIG
. 但是,当我这样做时:
- 配置类型 + 目标扩展名正确(动态库/.dll)
- 文件名不正确 - 附加了一个“1”。(
output_file_name
->output_file_name1
)
如果我选择生成 a 而不是这些错误.lib
。在 Ubuntu 16.4 上构建并使用CONFIG += plugin
.
我在文件末尾的完整 CONFIG 值是:
lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin windows file_copies qmake_use warn_on release link_prl flat debug_and_release debug_and_release_target precompile_header autogen_precompile_source embed_manifest_dll embed_manifest_exe shared release no_plugin_manifest win32 msvc copy_dir_files c++11 debug_and_release force_debug_info dll c++11 debug_and_release force_debug_info
我是否缺少/滥用标志?这种行为是故意的 - 如果是这样,为什么文档中没有解决?任何帮助,将不胜感激。
c++ - 单个 cpp 文件的 Visual Studio 编译选项灰显
我被要求帮助一位同事解决一个常见解决方案中的一个项目中的神秘构建错误。构建错误发生在链接阶段,在包含该 a.lib 的库 (b.lib) 中使用静态库 (a.lib) 中定义的类构造函数时找不到。经过仔细调查,我发现:
- 构造函数在类中正确定义。
- 该类在属于该项目的 cpp 文件中定义。
- 如果尝试使用智能感知导航到 cpp 文件或类构造函数,一切都会按预期进行。
vcxproj 文件 ClCompile ItemGroup:
总之,链接库所需的东西在那里,但链接错误仍然存在。
我注意到的一件奇怪的事情是,没有找到类构造函数的 cpp 无法通过按 Ctrl-F7 或 a.lib 中的右键来编译。该选项显示为灰色,但仅适用于该特定文件。此外,当我构建应该编译该文件的 a.lib 库时,它不是,因此没有创建目标文件。
可能是什么原因?我该如何解决?
我正在使用 Visual Studio Professional 2015 Update 3。
c++ - 将 CMake.txt 转换为 .vcxproj 文件 C++ Visual Studio 项目
CMake
将 C++项目转换为带有文件的 C++ Visual Studio 项目是否有任何工具或可能性.vcxproj
?
我需要这个,因为我们想在我正在工作的项目中提供 CMake 支持,但我们需要先进行这种转换。我搜索了很多,但没有找到任何关于这种转换的信息,至少现在还没有。
任何意见或建议都将受到高度赞赏。谢谢!
qt - Qt、Visual Studio 2017 和 .vcxproj.user 文件
我在多台机器上使用 Visual Studio 15.9.14 和 Qt 5.13.0。当我从版本控制中检查我的源代码时:
- 如果我打开 VS IDE 来构建我的解决方案,一切都会正确编译和链接。
- 如果我使用 devenv.exe 从命令行构建解决方案,Qt 项目中会出现多个编译和链接错误。
问题是从命令行构建时,不会生成 .vcxproj.user 文件,因此没有定义 $QTDIR 以在我的项目中使用。结果是我的自动化/夜间构建失败。
我可以构建一个工具来创建文件并将其集成到我的构建过程中,但我不应该这样做。这个问题似乎与 VS/Qt 集成有关。我在 IDE 中也遇到了类似的问题,我不得不通过触摸项目来强制重新生成文件。
任何建议/帮助将不胜感激。
visual-studio - 如何从外部列表设置链接器的输出文件(在 .vcxproj 中)
我有一堆用于 VS2017 的 C++ 项目 (.vcxproj),它们生成动态库 (DLL),它们像“插件”一样处理(即它们由应用程序动态加载)。
有时我想根据文本文件中的某些列表更改生成的 DLL 名称(格式可能会更改):
第一列指定项目名称 ( $(ProjectName)
),第二列指定所需的 DLL 名称 ( $(TargetName)
)。
我希望在构建时解析这个文件,所以每个读取的 DLL 名称都会进入$(OutputFile)
相应的项目。
例如,ProjName1.vcxproj
将有以下片段(在构建时):
我想,某些功能msbuild
可以用于此(例如,ReadLinesFromFile 任务和FindInList 任务),但我不知道如何将这些部分放在一起)。
有一些这样的自动化示例需要考虑,尽管我怀疑它们与 .vcxproj 格式相关:
直接的方法是修改每个 .vcxproj 文件的内容以匹配列表(手动或使用某些脚本)。
还有其他选择吗?
更新 1:我设法实现了一个部分解决方案,该解决方案基于每个项目的 DLL 名称(模块名称)的单独文件(有关更多提示,请参阅属性函数)。
在我的情况下,使用属性表很容易将修复“注入”到所有项目中:
虽然效果很好,但该方法并不能完全满足我的需求——我希望将所有模块名称放在一个文件中。