在 C# 项目中使用 vb.net 模块
本文关键字:vb net 模块 项目 | 更新日期: 2023-09-27 18:36:45
我想在我的 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();
}
}
}
这是您需要的 C# 转换代码.. 确保如果将其添加到放置
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
namespace GestioneSetupFile
{
public static class GestioneSetupFiles
{
private const short TAB_POS = 30;
static string Testo;
static string Paragrafo;
static int PtrParagrafo;
public static string DEFAULT_APP_DIR = My.Application.Info.DirectoryPath;
public static string DEFAULT_APP_DIR = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "''BTSR''PC-LINK NEMO";
public static string DEFAULT_CONFIG_DIR = DEFAULT_APP_DIR + "''Config";
public static void CheckConfigDir()
{
if (!My.Computer.FileSystem.DirectoryExists(DEFAULT_CONFIG_DIR))
{
string NomeFile = null;
My.Computer.FileSystem.CreateDirectory(DEFAULT_CONFIG_DIR);
NomeFile = FileSystem.Dir(DEFAULT_APP_DIR + "''*.cfg");
while (!string.IsNullOrEmpty(NomeFile))
{
My.Computer.FileSystem.MoveFile(DEFAULT_APP_DIR + "''" + NomeFile, DEFAULT_CONFIG_DIR + "''" + NomeFile);
My.Computer.FileSystem.CopyFile(DEFAULT_APP_DIR + "''" + NomeFile, DEFAULT_CONFIG_DIR + "''" + NomeFile);
NomeFile = FileSystem.Dir();
}
NomeFile = FileSystem.Dir(DEFAULT_APP_DIR + "''*.dat");
while (!string.IsNullOrEmpty(NomeFile))
{
My.Computer.FileSystem.MoveFile(DEFAULT_APP_DIR + "''" + NomeFile, DEFAULT_CONFIG_DIR + "''" + NomeFile);
My.Computer.FileSystem.CopyFile(DEFAULT_APP_DIR + "''" + NomeFile, DEFAULT_CONFIG_DIR + "''" + NomeFile);
NomeFile = FileSystem.Dir();
}
}
}
}
}
要查看 VB 与 C#.NET 中的热根命名空间工作,请查看此处,您将看到如何解决您的问题,否则转换后的部分是我为您开始的。
可能有更好的方法可以做到这一点,但就我而言,有问题的模块是 VB 项目的一部分,该项目也有一个我可以引用的类库。 我刚刚在该库中创建了一个调用模块中函数的方法。 这给了我访问权限,我不需要复制代码。 当我们重写它时,我应该不需要更改我的 C# 代码。 这有点不同,因为我正在访问模块中的一个函数,但在这里我认为它看起来像这样,但你明白了:
Public Class MyLibrary
Public Shared Sub GestioneSetupFiles()
GestioneSetupFile.GestioneSetupFiles()
End Sub
End Class