2012-09-16 90 views
1

我在c#中有一个包含图形用户界面的项目。现在我们正在获得第二个硬件后端。我们想要的是可以在编译项目后决定后端使用哪个库并更改用于后端处理的类。 我看着msbuild,但我不知道如何实现它与此。有另一种或更好的方法来做到这一点?Visual Studio构建目标

+0

你不想在UI中这么做吗? – SLaks

+1

您是否研究过像StructureMap这样的任何依赖注入(控制反转)框架?他们的目的是让你通过配置来改变你正在使用的实现。所以,你不需要在编译时担心;在运行之前,你会改变它。我假设您为后端使用了一个通用接口,以便在不更改代码的情况下轻松切换两者。 –

回答

0

正如Mike所说的,依赖注入是正确的解决方案,在部署时包含合适的.dll以解决界面问题,这可以简单到TinyIoC。不正确的方法是使用条件引用来调整.csproj,请参阅example,但基于您的情况下的$(配置)值,因此您可以在VS或CLI中切换,它可以工作,但会带来痛苦的世界。

+0

这个想法并没有在您正在编译的计算机上安装所有必需的dll。作为后端之一的是National Instruments公司的DAQmx,它需要大约1GB的容量,未来还会有一些其他的后端,所以在linux下有一个类似configure脚本的东西,你可以选择你想要编译的后端gui。 –

+0

我的一位朋友告诉我,我应该提到每个后端都需要安装自己的sdk。如果你得到很多需要不同sdks的后端,这使得它不太合理。因此,在编译你想要编译gui的后端和sdk的程序之前,最好决定。 –

相关问题