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.

2
  • 2
    Did you restart Visual Studio after setting environment variable? Commented May 19, 2012 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. Commented May 19, 2012 at 21:44

3 Answers 3

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\"

Sign up to request clarification or add additional context in comments.

6 Comments

Settled for using an environment variable over a user macro so that the syntax would work.
It doesn't seem to work for files included directly in solution folders
Be aware that introducing variables into a .sln file means that they cannot be used with MSBuild. See See connect.microsoft.com/VisualStudio/feedback/details/690318/…
@cowlinator which version of MSBuild did you try?
MSBuild 15.4.8.50001 (installed from Visual Studio Build Tools 2017 15.4.5) among others. Have you tried building a .sln file containing %environment_variables% with MSBuild?
|
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.

Comments

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>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.