1

我在 VB 中的 ASP 应用程序有许多我想与 WinForms VB 应用程序共享的模块。但是 VB.ASP 模块包含在 WinForms 应用程序中不必要、有用或不可能包含的内容。我可以使用编译器指令使一个文件在两个项目中都可以工作吗?

4

2 回答 2

1

看看这个问题:VB.NET Preprocessor Directives它展示了如何使用预处理器指令

因此,基本上您需要将文件包含到 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 中,该 dll 可用于两个项目而无需重新编译

于 2013-10-18T18:14:37.350 回答
0

自我定义的价值观确实是一种方式,但我想我还有另一种方式。

_MYTYPE 编译常量由 Visual Studio 管理,包含“Windows”、“Console”、“Web”和类似的细节。我可以在 #If 中包含 IMPORTS 语句,如下所示:

#If _MYTYPE = "Web" Then
    Imports System.Web.HttpRequest
#End If

不幸的是,重构似乎确实需要这样做。他们可能不会让我这样做。

于 2013-10-18T18:43:51.337 回答