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

时间:2012-08-27 14:49:14

标签: c# visual-studio

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

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

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

3 个答案:

答案 0 :(得分:2)

您可以在项目中创建新的Conditional compilation symbol(例如FULLVERSION)。使用new Solution configuration创建Configuration Manager(例如ReleaseFullversion),并在此配置中定义FULLVERSION常量。


然后您可以使用

包装代码块
#if FULLVERSION
 ...
#end if

或使用Conditional atrribute

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

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

如果未设置#if常量(Conditional属性只是删除,

这些FULLVERSION块中的代码和这些Conditional属性将不会编译到程序集中实际上是对该代码块的调用。


然后你要么构建一个精简版的解决方案,要么构建一个包含完整代码的Fullversion。

答案 1 :(得分:1)

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

DevEnv explanation

Using Devenv at the command prompt to build projects

答案 2 :(得分:1)

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

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

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

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