我编写了一个Visual Studio C#项目,我需要创建两个可执行文件,一个用于“lite版本”,另一个用于同一个项目的“完整版本”。
“lite版本”将是完整版本的精简版本,所以我想分享所有内容(代码,资源等),如果可能的话,使用编译指令来隔离代码块。
你能告诉我一种以干净的方式做到这一点的方法吗?
答案 0 :(得分:2)
您可以在项目中创建新的Conditional compilation symbol(例如FULLVERSION
)。使用new Solution configuration创建Configuration Manager(例如ReleaseFullversion),并在此配置中定义FULLVERSION
常量。
然后您可以使用
包装代码块#if FULLVERSION
...
#end if
[Conditional("FULLVERSION")]
void MyMethod()
{...}
创建应用程序的精简版本。
如果未设置#if
常量(Conditional
属性只是删除,这些FULLVERSION
块中的代码和这些Conditional
属性将不会编译到程序集中实际上是对该代码块的调用。
然后你要么构建一个精简版的解决方案,要么构建一个包含完整代码的Fullversion。
答案 1 :(得分:1)
您可以使用Visual Studio Post Build事件,从批处理调用DEVENV.EXE
到您的项目,其中包含一些特殊参数,使其以不同的方式进行编译。
答案 2 :(得分:1)
要在视觉工作室中完成所有这一切,你需要一些奇怪的仪式,对于任何只是看你的项目的人来说都是不明显的,所以找出一个训练方案以确保每个人都知道什么是很重要的。继续。
首先,右键单击您拥有的解决方案,然后转到属性。单击“Configuration Manager”并进行新配置。称之为“精简版”或任何让你高兴的事。
然后,您可以右键单击解决方案中的每个项目,以设置所需的条件编译属性。然后,您可以使用Conditional Compilation Symbols来隔离“完整”和“精简”的内容。
完成此配置后,它将显示在visual studio的UI顶部 - 您通常会看到Debug和Release,现在您将看到Lite或您刚配置的任何内容。