Visual Studio 从 vcxproj 文件中删除 props 文件定义

Posted

技术标签:

【中文标题】Visual Studio 从 vcxproj 文件中删除 props 文件定义【英文标题】:Visual Studio removes props file definition from vcxproj file 【发布时间】:2019-03-31 00:52:34 【问题描述】:

我创建了一个项目模板https://docs.microsoft.com/en-us/visualstudio/ide/creating-project-and-item-templates?view=vs-2017 在 vcxproj 我有道具文件定义: (图片左侧): props in vcxproj

道具文件存在于项目包中。 创建新项目时,Visual Studio 会从 vcxproj 中删除带有 prop 文件定义的行。 当我手动恢复它并重新加载项目时,一切正常。 Visual Studio 这样做的原因可能是什么?

【问题讨论】:

不确定Visual Studio删除项目文件中的props文件的原因,我在下面给出了答案,你可以检查它是否有帮助,如果没有,请告诉我你是怎么得到这个问题的,请分享一些重现此问题的步骤,我会继续跟进。 感谢回复。我做了最简单的解决方案,并在那里添加了一个道具文件。在这里:link 然后将其导出为模板并尝试基于它创建一个新项目。 VS 发出错误:'无法读取项目文件“ConsoleApplication63.vcxproj”。未找到导入的项目“c:\Users\tkot\documents\visual studio 2015\Projects\ConsoleApplication63\ConsoleApplication63\PropertySheet.props”...所有需要的文件都在 Documents\Visual Studio 2015\My Exported Templates\ConsoleApplication6 中。 是的,如果您使用的是 VS 2015,您会收到该错误。您可以将您的 VS 升级到 2017,如果您不想升级 VS,请查看我的更新答案以获取更多详细信息。 【参考方案1】:

Visual Studio 从 vcxproj 文件中移除 props 文件定义

首先,确保项目模板中存在props文件,其次,确保使用自定义模板创建新项目。您可以按照以下步骤操作:

    创建一个新的 C++ 项目,我将其命名为 MyCustomTemplate。 卸载项目,然后将<Import Project="$projectname$.props" /> 添加到项目文件.vcxproj。 重新加载项目,进入项目选项卡,选择导出模板,单击下一步并完成。 (您可以检查模板文件中是否存在props行,用记事本打开.vcxproj。) 使用新的自定义模板 MyCustomTemplate 创建新项目,然后卸载项目并检查 props 文件。

更新:

由于您使用的是 Visual Studio 2015,因此您会收到该错误。如果您将 Visual Studio 升级到 2017,一切都会好起来的。

如果你不想将你的 Visual Studio 升级到 2017,你可以按照 Paul H. 的方法来解决这个问题:

How to include a property sheet in VC project template

希望这会有所帮助。

【讨论】:

以上是关于Visual Studio 从 vcxproj 文件中删除 props 文件定义的主要内容,如果未能解决你的问题,请参考以下文章

如果无法创建 vcxproj 文件,是不是可以将 MSBuild 用作带有 Visual Studio 代码的 C++ 编译器?

Visual Studio 2017 无法打开现有文件

如何在 Visual Studio 2017 上禁用代码分析?

为啥visual studio2012在新建c++项目的时候会出现这个对话框?

通过 Visual Studio 项目文件禁用驱动程序签名

EnvDTE.DTE 为 Visual Studio 2015 创建空的 C++ 项目