无论如何在解决方案基础上#define Constant?
反正在Visual Studio解决方案基础上有#define Constant
吗?
可以在csproject的基础上定义一个常量,并且可以将#define constant
放在cs文件中,但我想知道是否可以在vs sln的基础上定义它?
您可以使用常见项目设置实际使用Ritch方法的变体。 基本上,您必须对解决方案中每个项目文件的末尾进行一次更改:
..\..\
然后,您可以定义CommonSettings.targets以包含解决方案范围的设置。
true
除非您想要覆盖或合并每个项目中已定义的项目设置,否则基本上就是这样。 以下链接详细讨论了如何执行此操作。
http://www.ademiller.com/blogs/tech/2007/12/common-project-settings-for-your-visual-studio-solution/
我有另一种做法:
-
编辑全局配置文件。 例如在我的情况下它是.netcf2.0所以它是
$(MSBuildBinPath)\microsoft.compactframework.csharp.targets
。添加以下行:
这是告诉MSBuild导入CommonSettings.targets,如果它存在于您的解决方案文件夹中。
-
在解决方案文件夹下创建CommonSettings.targets。
例如,定义ABC符号:
$(DefineConstants);ABC
间接有。 如果使用标志设置环境变量并运行VS:
set TacoBuild=true devenv.eve bigproject.sln
或者从命令行启动MSBuild:
msbuild /p:TacoBuild=true
在.csproj文件中,您需要添加一个PropertyGroup:
$(DefineConstants);TacoBuild
在您的代码中,您需要一个预处理器def:
#if TacoBuild const int myConst = 42; #endif
VS唯一的替代方法是在构建设置中为新项目配置定义预处理器定义,并在构建中使用该配置。
非MSBuild解决方案是创建一个constants.cs文件并编写一个更新cs文件的自定义设置工具。 我希望有更好的解决方案,但我还没找到。