13

Is there a way to define the project file path in a solution using a user macro/environment variable? I can't seem to do that.

Kind of like an environment variable is used to define the additional include directories in a C++ project, except I want to do the same for the location of a project file in a solution.

I've tried editing the solution in a text editor to change the path to start with %MyMacroName% or $(MyMacroName) but neither of them seems to parse just right. The project files can't be located when the solution is opened.

Sion Sheevok
  • 4,057
  • 2
  • 21
  • 37
  • 2
    Did you restart Visual Studio after setting environment variable? – Hakan Serce May 19 '12 at 21:39
  • I closed the solution and reopened it. I was mostly trying to do this as a user macro in a property sheet, but if it must be an environment variable, that's fine. – Sion Sheevok May 19 '12 at 21:44

3 Answers3

17

In .sln file use syntax "%ENV_VAR%rest_of_the_path\test.csproj"

In .csproj file use syntax "$(ENV_VAR)rest_of_the_path\test.dll"

That works for me, ENV_VAR is custom environment variable defined for operating system like ENV_VAR = "C:\MyPath\"

watbywbarif
  • 6,487
  • 8
  • 50
  • 64
1

MSBuild allows you use to environment variables,

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

So that you should be able to define environment variables as you wish, and then modify vCxproj files to make use of them.

I am not sure if that tip works for sln files, as sln files are not MSBuild scripts.

Lex Li
  • 60,503
  • 9
  • 116
  • 147
0

From Microsoft Docs .vcxproj and .props file structure:

We recommend you only create and modify .vcxproj projects in the IDE, and avoid manual editing as much as possible. In most cases, you never need to manually edit the project file. Whenever possible you should use the Visual Studio property pages to modify project settings.

If you need customizations that aren't possible in the IDE, we recommend you add custom props or targets.

In props file, use syntax <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>
Dharman
  • 30,962
  • 25
  • 85
  • 135
Steven Lee
  • 415
  • 4
  • 14