【问题标题】:Defining Project Paths in a Solution via Macro/Environment Variable通过宏/环境变量在解决方案中定义项目路径
【发布时间】:2022-03-22 07:24:49
【问题描述】:

有没有办法使用用户宏/环境变量在解决方案中定义项目文件路径?我好像做不到。

类似于环境变量,用于定义 C++ 项目中的其他包含目录,但我想对解决方案中项目文件的位置执行相同操作。

我尝试在文本编辑器中编辑解决方案以更改以 %MyMacroName% 或 $(MyMacroName) 开头的路径,但它们似乎都无法正确解析。打开解决方案时找不到项目文件。

【问题讨论】:

  • 设置环境变量后是否重启了Visual Studio?
  • 我关闭了解决方案并重新打开它。我主要是尝试将其作为属性表中的用户宏来执行,但如果它必须是环境变量,那很好。

标签: visual-studio-2010 visual-studio environment-variables projects-and-solutions


【解决方案1】:

在 .sln 文件中使用语法“%ENV_VAR%rest_of_the_path\test.csproj”

在 .csproj 文件中使用语法“$(ENV_VAR)rest_of_the_path\test.dll”

这对我有用,ENV_VAR 是为操作系统定义的自定义环境变量,例如 ENV_VAR = "C:\MyPath\"

【讨论】:

  • 已确定在用户宏上使用环境变量,以便语法正常工作。
  • 它似乎不适用于直接包含在解决方案文件夹中的文件
  • 请注意,将变量引入 .sln 文件意味着它们不能与 MSBuild 一起使用。见见connect.microsoft.com/VisualStudio/feedback/details/690318/…
  • @cowlinator 您尝试了哪个版本的 MSBuild?
  • MSBuild 15.4.8.50001(从 Visual Studio Build Tools 2017 15.4.5 安装)等等。您是否尝试过使用 MSBuild 构建包含 %environment_variables% 的 .sln 文件?
【解决方案2】:

MSBuild 允许你使用环境变量,

http://msdn.microsoft.com/en-US/library/ms171459(v=VS.80).aspx

这样您就应该能够根据需要定义环境变量,然后修改 vCxproj 文件以使用它们。

我不确定该提示是否适用于 sln 文件,因为 sln 文件不是 MSBuild 脚本。

【讨论】:

    【解决方案3】:

    来自微软文档.vcxproj and .props file structure

    我们建议您只在 IDE 中创建和修改 .vcxproj 项目,并尽可能避免手动编辑。在大多数情况下,您永远不需要手动编辑项目文件。您应该尽可能使用 Visual Studio 属性页来修改项目设置。

    如果您需要在 IDE 中无法进行的自定义,我们建议您添加自定义 propstargets

    props文件中,使用语法<ENV_VAR>your_local_path</ENV_VAR>

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <ImportGroup Label="PropertySheets" />
      <PropertyGroup Label="UserMacros">
        <ENV_VAR>your_local_path</ENV_VAR>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-24
      相关资源
      最近更新 更多