我正在开发一个可以在不同平台上编译的应用程序。我想在编译时检查一个库是否可用。
基本上,这就是我想做的事情
#if LIBRARY_OK(mylib)
using mylib;
using mylib.subpackage;
#endif
有办法做到这一点吗?
答案 0 :(得分:1)
这个C#应用程序可以在不同的平台上编译。
然后,不是尝试检查库是否可用,而是为要支持的不同平台定义编译符号。例如:
然后,你的代码与你的代码基本相同:
#if LIBRARYX
using mylib;
using mylib.subpackage;
#endif
答案 1 :(得分:0)
这将有点奇怪,而且不是很优雅,但它有效。
将此命令放入项目属性中的Pre-build event
。以下命令假定您的文件位于根目录中,但您可以修改Program.cs
的位置。
if exist C:\ffmpeg (
set IS_LIB_OK=TRUE
)
if %IS_LIB_OK% equ TRUE echo using mylib; > $(ProjectDir)\Temp.cs & echo using mylib.extension; >> $(ProjectDir)\Temp.cs
type $(ProjectDir)\Program.cs >> $(ProjectDir)\Temp.cs
del $(ProjectDir)\Program.cs
type $(ProjectDir)\Temp.cs > $(ProjectDir)\Program.cs
del $(ProjectDir)\Temp.cs
这将附加
using mylib;
using mylib.extensions;
如果您的C驱动器中有ffmpeg library
,但您可以使用适合您的解决方案的任何批处理命令进行检查。