我在VB中的ASP应用程序有许多模块,我想与WinForms VB应用程序共享。但是VB。ASP 模块包含的包含对于 WinForms 应用中是不必要的、无用的或不可能包含的。是否可以使用编译器指令使一个文件在两个项目中都工作?
看看这个问题: VB.NET 预处理器指令 它展示了如何使用预处理器指令
因此,基本上您需要将文件包含在Winforms应用程序中,并在这些文件中添加如下行:
#IF MYDEFINEFORASPNET Then
require/import/define functions which are only for .net
#End if
#if MYDEFINEFORWINFORM Then
require/import/function for only win form
#End if
define generic functions
实现此目的的另一种方法 - 重构代码以将泛型部件移动到单独的 DLL 中,无需重新编译即可用于这两个项目
自定义值确实是一种方式,但我想我有另一种方式。
_MYTYPE编译常量由Visual Studio管理,包含"Windows","控制台","Web"和类似的细节。我可以将 IMPORTS 语句包含在 #If 中,如下所示:
#If _MYTYPE = "Web" Then
Imports System.Web.HttpRequest
#End If
不幸的是,重构似乎是这样做所必需的。他们可能不会让我这样做。