I am totally new to the functions and conditions in .csproj files so any and all help is appreciated.
What I want to do is check for a specific compiler directive in the current configuration. An example would be something like the following:
<Choose>
<When Condition= [current configuration has CONST-1 compiler constant defined] >
...
</When>
<When Condition= [current configuration has CONST-2 compiler constant defined] >
...
</When>
</Choose>
I don't know if this is even possible or not. If there is a better way to do what I am asking let me know that as well. Either way, I want to test for a condition independent of the configuration.
EDIT
What I really want is a value that I can edit easily, preferrably within Visual Studio, that I can also check regargless of the configuraiton. I thought about compiler constants because you can easily change them in the Project Properties in VS.
For example, bin\Debug. Specifies the path to the output directory, relative to the project directory, for example, bin\Debug.
CSPROJ files are are meant to be opened and edited in Microsoft Visual Studio (Windows, Mac) as part of Visual Studio projects. However, because CSPROJ files are XML files, you can open and edit them in any text or source code editor.
Then, right-click on the project and choose Edit <projectname>. You don't have to use solutions or projects in Visual Studio to edit, build, and debug code. You can simply open the folder that contains your source files in Visual Studio and start editing.
Compiler constants are set into a property "DefineConstants" so you should just be able to evaluate that property. Your Choose
statement needs to go after the PropertyGroups that define the constants or inside a target.
<Choose>
<When Condition="$(DefineConstants.Contains(CONST-1))">
...
</When>
<When Condition="$(DefineConstants.Contains(CONST-2))">
...
</When>
</Choose>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With