Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2017 VS 2017社区版的编译器设置_Visual Studio 2017 - Fatal编程技术网

Visual studio 2017 VS 2017社区版的编译器设置

Visual studio 2017 VS 2017社区版的编译器设置,visual-studio-2017,Visual Studio 2017,我正在创建一个大型项目,它将与一系列程序交互(目前,CorelDraw,但将来也可以与InkScape合作,可能是Illustrator),也可能是一个独立的项目 为此,我将解决方案分为多个项目: -一个用于WinUI窗体, -另一个领域模型, -另一个用于Corel Draw的特定版本 因此,由于我仍在学习C#(以及工具-VS2017社区),我选择WinForms是因为它更接近我已经熟悉的VBA,但在未来,我可能会转向WPF或其他UI(例如,该域可以用于移动应用程序或网站) 另外,关于Core

我正在创建一个大型项目,它将与一系列程序交互(目前,CorelDraw,但将来也可以与InkScape合作,可能是Illustrator),也可能是一个独立的项目

为此,我将解决方案分为多个项目: -一个用于WinUI窗体, -另一个领域模型, -另一个用于Corel Draw的特定版本

因此,由于我仍在学习C#(以及工具-VS2017社区),我选择WinForms是因为它更接近我已经熟悉的VBA,但在未来,我可能会转向WPF或其他UI(例如,该域可以用于移动应用程序或网站)

另外,关于Corel Draw的具体版本,我将从我在工作中使用的版本开始,但在未来,我将添加其他项目,以便与每个版本进行交互。更具体地说,每个生成.dll的项目(每个Corel Draw版本都希望启动插件)。或者是另一个.dll InkScape需要的项目,如果我选择制作一个独立的应用程序,甚至是主exe

简而言之:我如何保存不同的“配置文件”,让编译器知道哪些项目需要编译,哪些项目不需要编译,并为每个项目设置不同的“构建路径”(这样,当我为每种构建创建安装程序时,我就拥有了构建所需的所有正确文件)

打开解决方案后,“解决方案资源管理器”->
右键单击解决方案(在窗口顶部)->“属性”->“配置属性”->“配置”

然后单击“配置管理器”,然后单击“活动解决方案配置”->“新建…”

这将创建一个新配置。现在,您可以选择各种项目应如何/是否为该配置构建。(也可以使用此窗口编辑现有配置的生成方式)

也可以考虑做一个完全不同的解决方案,如果你正在构建一个不同的东西(这可能比结束一个解决方案的30个构建配置更容易)


此外,您还可以通过
$(ConfigurationName)
宏在项目中获取配置名称。确保您的项目可以在没有正确设置的情况下构建是很好的(这样它们就不依赖于特定的解决方案)

非常感谢您的回答。然而,我仍然缺少一些东西。在“配置管理器”下,我可以选择编译或不编译哪个项目,但在“公共属性”(我可以选择启动/初始化项目)中,似乎不允许我根据不同的构建配置选择不同的项目。此外,我似乎找不到根据构建配置为已编译dll设置bin路径的位置。无论如何,再次感谢您,我将尝试查找关于构建配置的官方文档,也许我将转向使用不同的解决方案。我猜最终它会迫使我减少启动它所需的UI、域模型和基础结构之间的耦合。对于.NET DLL,参考可能应该是项目的CLSID/GUID。这在引用正确的dll方面做得相当好。如果这是一个问题,或者对于外部DLL,您可以使用
$(ConfigurationName
)设置输出路径,然后让项目在引用中使用相同的宏。您可以在属性页中签出引用路径。直接编辑项目文件通常也很有用(
卸载项目
,然后
编辑
)再次感谢您!我会试试看什么最适合我。