我在VB中的ASP应用程序有许多模块,我想与WinForms VB应用程序共享。但VB.ASP模块包含的内容在WinForms应用程序中不是必需的,有用的或可能包含的。我可以使用编译器指令使一个文件在两个项目中都能工作吗?
答案 0 :(得分: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中,这可以用于两个项目而无需重新编译
答案 1 :(得分:0)
自定义值确实是一种方式,但我认为我有另一种方式。
The _MYTYPE compilation constant由Visual Studio管理,包含“Windows”,“控制台”,“Web”和类似细节。我可以在#If中包含IMPORTS语句,如下所示:
#If _MYTYPE = "Web" Then
Imports System.Web.HttpRequest
#End If
不幸的是,重构似乎确实需要这样做。他们可能不会让我这样做。