相关疑难解决方法(0)

在Visual Studio中的项目之间共享预编译的标头

我有一个包含许多Visual C++项目的解决方案,所有这些项目都使用PCH,但有些项目具有特定的编译器开关以满足项目特定的需求.

大多数这些项目在各自的stdafx.h(STL,boost等)中共享相同的头文件集.我想知道是否可以在项目之间共享PCH,这样我就可以拥有一个普通的PCH而不是编译每个项目的PCH,解决方案中的大多数项目都可以使用.

似乎可以将PCH的位置指定为项目设置中的共享位置,因此我有预感这可行.我还假设所有使用共享PCH的项目中的所有源文件都必须具有相同的编译器设置,否则编译器会抱怨PCH与正在编译的源文件之间的不一致.

有没人试过这个?它有用吗?

一个相关的问题:这样的碎片PCH应该过于包容,还是会损害整体构建时间?例如,共享PCH可能包含许多广泛使用的STL标头,但某些项目可能只需要<string><vector>.当优化器必须丢弃由PCH拖入项目的所有未使用的东西时,使用共享PCH节省的时间是否必须在构建过程的稍后时间回收?

c++ precompiled-headers pch visual-c++

41
推荐指数
4
解决办法
1万
查看次数

如何在.NET中为不同的环境使用不同的.settings文件?

.NET允许您使用.settings文件来管理应用程序设置.我想以一种我可以这样做的方式单独存储生产,开发和测试设置:

EnvironmentSettings environmentSettings;

// get the current environment (Production, Development or Test)
ApplicationEnvironment Environment = (ApplicationEnvironment)
    Enum.Parse(typeof(ApplicationEnvironment), Settings.Default.ApplicationEnvironment);

switch (Environment)
{
    case ApplicationEnvironment.Production:
        environmentSettings = Settings.Production;
        break;
    ...
}

string reportOutputLocation = environmentSettings.ReportOutputLocation;
Run Code Online (Sandbox Code Playgroud)

基本上,我想要两个单独的Settings类:存储所选环境和非环境特定属性的常规Settings类,以及名为EnvironmentSettings的第二个类的3个静态实例.使用的实例应取决于常规Settings类中指定的环境.

有没有办法在静态构造函数或其他东西中手动设置所有这些设置的值?如果我必须这样做,我宁愿只有一个大的Settings类,其中包含"DevOutputLocation","LiveOutputLocation"等属性.

我可以在我的项目中有多个.settings文件,但这只是创建了不相互派生的单独类.所以我可以创建DevelopmentSettings.settings,ProductionSettings.settings和TestSettings.settings文件并给它们相同的属性,但是我需要在任何地方使用一堆switch语句来确定要使用哪个类,因为它们不是从公共类派生的.

.net settings application-settings

11
推荐指数
1
解决办法
4198
查看次数