【发布时间】:2015-03-07 03:11:13
【问题描述】:
我想在我的 c# 项目中使用 vb.net 模块。我编译了 vb.net 模块,并在 c# 项目中添加了对其 dll 的引用,但在 c# 项目中看不到它。该模块是公共的,我尝试在模块名称之前写它的命名空间(dll文件名),我尝试手动插入using moduleNameSpace,我检查了两个项目具有相同的目标框架(4.5没有客户端配置文件),但我仍然看不到它。我不知道我应该进一步做什么。
谁能帮我?谢谢!
vb.net 模块的一部分:
Namespace GestioneSetupFile
Public Module GestioneSetupFiles
Private Const TAB_POS As Short = 30
Dim Testo, Paragrafo As String
Dim PtrParagrafo As Integer
Public DEFAULT_APP_DIR As String = My.Application.Info.DirectoryPath
'Public DEFAULT_APP_DIR As String = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\BTSR\PC-LINK NEMO"
Public DEFAULT_CONFIG_DIR As String = DEFAULT_APP_DIR + "\Config"
Public Sub CheckConfigDir()
'Verifica la presenza della cartella Config
'Se non esiste la crea e per compatibilità con le versioni precedenti ci copia dentro tutti i files .cfg e .dat che trova
If Not My.Computer.FileSystem.DirectoryExists(DEFAULT_CONFIG_DIR) Then
'Dim NomeFile As String
My.Computer.FileSystem.CreateDirectory(DEFAULT_CONFIG_DIR)
'NomeFile = Dir(DEFAULT_APP_DIR + "\*.cfg")
'While NomeFile <> ""
' 'My.Computer.FileSystem.MoveFile(DEFAULT_APP_DIR + "\" + NomeFile, DEFAULT_CONFIG_DIR + "\" + NomeFile)
' 'per compatibilità con vecchio (se reinstallato) non sposta ma copia i file
' My.Computer.FileSystem.CopyFile(DEFAULT_APP_DIR + "\" + NomeFile, DEFAULT_CONFIG_DIR + "\" + NomeFile)
' NomeFile = Dir()
'End While
'NomeFile = Dir(DEFAULT_APP_DIR + "\*.dat")
'While NomeFile <> ""
' 'My.Computer.FileSystem.MoveFile(DEFAULT_APP_DIR + "\" + NomeFile, DEFAULT_CONFIG_DIR + "\" + NomeFile)
' 'per compatibilità con vecchio (se reinstallato) non sposta ma copia i file
' My.Computer.FileSystem.CopyFile(DEFAULT_APP_DIR + "\" + NomeFile, DEFAULT_CONFIG_DIR + "\" + NomeFile)
' NomeFile = Dir()
'End While
End If
End Sub
End Module
End Namespace
这是我在 c# 项目中的调用:
using System;
/*Others using*/
using Microsoft.VisualBasic;
using GestioneSetupFile; //Compile error
namespace UltraFeederControl
{
public partial class Form1 : Form
{
private void updateConfigFile()
{
GestioneSetupFiles.CheckConfigDir();
}
}
}
【问题讨论】:
-
为什么你不能从 vb.Module 中获取代码并将其转换为它的 C# 等效项并在 C# 或扩展方法中创建一个模拟相同功能的类.. 如果你不确定如何要做到这一点..然后发布模块代码签名,它的功能和使用之一可以为您指明转换代码的正确方向..
-
如果没有对您的 VB 模块的(最小)定义、您在 C# 中的尝试使用以及您收到的编译器错误,没有人能够给您直接的答案。跨度>
-
@MethodMan 引用用 VB.NET 编写的 .net 程序集应该可以在 C# 中正常工作,而无需修改 C# 项目。一旦编译了 VB.NET(或 C#)源代码,任何 .NET 项目都应该能够引用它。请记住运行时版本等内容。
-
@MethodMan 是的,我正在做,即使我认为没有必要添加
Microsoft.VisualBasic -
我永远不会将我的命名空间命名为接近于方法名称的方法名称,这太令人困惑,并为您目前看到的 Vitto 等问题打开了大门
标签: c# vb.net reference module include