Visual studio 将属性文件导入到解决方案中的所有项目 我有C++的解决方案,由78个项目组成。我需要将属性文件导入所有项目。快速而肮脏的答案是在所有78个项目文件中添加以下部分(使用sed或类似工具):

Visual studio 将属性文件导入到解决方案中的所有项目 我有C++的解决方案,由78个项目组成。我需要将属性文件导入所有项目。快速而肮脏的答案是在所有78个项目文件中添加以下部分(使用sed或类似工具):,visual-studio,visual-c++,msbuild,Visual Studio,Visual C++,Msbuild,在不修改项目文件的情况下执行导入的最佳方法是什么?我认为这没有意义,因为SLN只不过是一个项目列表,它对msbuild一无所知。但如果你想要一个完全不值得花时间但至少符合SLN系统角色的创造性解决方案,您可以阅读关于如何从sln加载项目的内容,并创建自己的项目类型,该类型将包装普通的vcxproj加载程序,并在加载vcxproj后以某种方式插入一个秘密项目引用。您称之为“快速且肮脏”,但它真的肮脏吗?假设您取出一个或两个项目,并希望单独使用它们或在另一个解决方案中使用它们:如果这些项目不会自己指

在不修改项目文件的情况下执行导入的最佳方法是什么?

我认为这没有意义,因为SLN只不过是一个项目列表,它对msbuild一无所知。但如果你想要一个完全不值得花时间但至少符合SLN系统角色的创造性解决方案,您可以阅读关于如何从sln加载项目的内容,并创建自己的项目类型,该类型将包装普通的vcxproj加载程序,并在加载vcxproj后以某种方式插入一个秘密项目引用。您称之为“快速且肮脏”,但它真的肮脏吗?假设您取出一个或两个项目,并希望单独使用它们或在另一个解决方案中使用它们:如果这些项目不会自己指定导入,而是在解决方案级别指定导入,则在将它们移出解决方案时,这些信息将丢失。正如ZeloMUS指出的那样,毕竟只是一个要建立的东西的列表。在unix上,您可能可以干预系统的
make
,使其在makefile上操作,该makefile导入您想要的内容,然后导入原始参数。等价物是什么?它将更改visual studio运行的msbuild.exe。这应该可以通过…呃。。。在vcxproj中编辑ToolsVersion。是的,信不信由你,SLN在加载vcxproj之前甚至不知道使用哪个msbuild.exe。但是您想从sln向vcxproj发出msbuild命令吗?希望你能看到这是多么不切实际。
<Import Condition="Exists('$(MSBuildProjectDirectory)\..\VersionProj\Version.proj')" 
   Project="$(MSBuildProjectDirectory)\..\VersionProj\Version.proj" />