[英]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
到您的项目,其中包含一些特殊参数,使其以不同的方式进行编译。
要在视觉工作室中完成这一切,你需要一些奇怪的仪式,对于任何只是看你的项目的人来说都是不明显的,所以找出一个训练方案以确保每个人都知道发生了什么是很重要的。
首先,右键单击您拥有的解决方案,然后转到属性。 单击“Configuration Manager”并进行新配置。 称之为“精简版”或其他任何让你满意的东西。
然后,您可以右键单击解决方案中的每个项目,以设置所需的条件编译属性。 然后,您可以使用条件编译符号来隔离“完整”和“精简”的内容。
在完全配置完成后,它将显示在visual studio的UI顶部 - 您通常会看到Debug和Release,现在您将看到Lite或您刚刚配置的任何内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.