繁体   English   中英

在Visual Studio下管理多个目标项目

[英]Manage multiple target projects under Visual Studio

我编写了一个Visual Studio C#项目,我需要创建两个可执行文件,一个用于“lite版本”,另一个用于同一项目的“完整版本”。

“精简版”将是完整版的精简版,所以我想分享所有内容(代码,资源等),如果可能的话,使用编译指令来隔离代码块。

你能告诉我一种以干净的方式做到这一点的方法吗?

您可以在项目中创建一个新的条件编译符号 (比如FULLVERSION )。 使用Configuration Manager创建新的解决方案配置 (例如ReleaseFullversion),并在此配置中定义FULLVERSION常量。


然后,您可以使用包装代码块

#if FULLVERSION
 ...
#end if

或使用条件属性

[Conditional("FULLVERSION")]
void MyMethod()
{...}

创建一个精简版本的应用程序。

如果未设置FULLVERSION常量,则这些#if -block中的代码和这些Conditional属性将不会被编译到程序集中( Conditional属性实际上只删除了对该代码块的调用)。


然后,您可以构建解决方案的精简版本,也可以构建包含完整代码的Fullversion。

您可以使用Visual Studio Post Build事件,从批处理调用DEVENV.EXE到您的项目,其中包含一些特殊参数,使其以不同的方式进行编译。

DevEnv解释

在命令提示符下使用Devenv来构建项目

要在视觉工作室中完成这一切,你需要一些奇怪的仪式,对于任何只是看你的项目的人来说都是不明显的,所以找出一个训练方案以确保每个人都知道发生了什么是很重要的。

首先,右键单击您拥有的解决方案,然后转到属性。 单击“Configuration Manager”并进行新配置。 称之为“精简版”或其他任何让你满意的东西。

然后,您可以右键单击解决方案中的每个项目,以设置所需的条件编译属性。 然后,您可以使用条件编译符号来隔离“完整”和“精简”的内容。

在完全配置完成后,它将显示在visual studio的UI顶部 - 您通常会看到Debug和Release,现在您将看到Lite或您刚刚配置的任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM