如何添加外部本机依赖dll?

我有两个项目。 第一个是Windows窗体应用程序项目,第二个是类库项目。 Сlass库项目与FANN合作 。 Windows窗体是启动项目。 我应该让Fann.Net.dll和fanndoubleMT.dll与FANN一起使用。 我下载了这些库并将它们放在一个位于解决方案根目录下的文件夹lib中。 我将Fann.Net.dll作为外部dll添加到类库项目中。 我编译了这个项目。 我收到一条错误,上面写着“无法加载DLL’fanndoubleMT.dll’。我通过将fanndoubleMT.dll添加到文件夹Windows_Forms_Application \ bin \ Debug来修复此错误。 我认为这是一个可怕的解决方案,因为我使用git,每次你需要将dll转移到新工作区的这个文件夹。 真诚的,丹尼斯。

服务器端字自动化

我正在寻找使用openxml作为服务器端word自动化项目的替代方案。 有没有人知道有任何其他方式让我操纵单词书签和表格?

C#:产生连续音,直到被打断

我有一个用户与C#WPF程序一起交互的设备。 当用户按下设备上的按钮时,该程序必须发出哔声,指定的时间长度或用户按下按钮的时间,以较短者为准。 可用于产生蜂鸣声/音调的唯一扬声器是计算机BIOS扬声器; 我们不能假设其他发言者在附近(并且假设不会有任何其他发言者实际上是安全的)。 如何在必要的持续时间内产生连续的音调? 到目前为止,我发出了许多哔哔声,但不是连续的音调。 首先,启动一个线程: private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { if(this.Visibility == Visibility.Visible){ mBeepThread = new Thread(new ThreadStart(ProduceTone)); mBeepThread.Name = “Beep Thread”; mBeepThread.Start(); } } 线程本身: bool mMakeTone = false; private void ProduceTone(){ while(this.Visibility == Visibility.Visible){ if(mMakeTone ){ Console.Beep(); } else{ Thread.Sleep(10); } } } 然后在按下按钮的持续时间内将mMakeTone布尔值翻转为true,直到设备本身指定的时间。 我怀疑它只是对上面的Console.Beep()行的快速更改,但我不确定它会是什么。

如何确定控制台应用程序的启动方式?

如何通过双击EXE(或快捷方式)来判断用户是否已启动我的控制台应用程序,或者是否已打开命令行窗口并在该会话中执行我的控制台应用程序?

为整个项目全局声明预处理器符号(如DEBUG)

我想在NUnit和VS Tests之间切换,如下所示: #if !NUNIT using Microsoft.VisualStudio.TestTools.UnitTesting; #else using NUnit.Framework; using TestClass = NUnit.Framework.TestFixtureAttribute; using TestMethod = NUnit.Framework.TestAttribute; using TestInitialize = NUnit.Framework.SetUpAttribute; using TestCleanup = NUnit.Framework.TearDownAttribute; using TestContext = System.String; using DeploymentItem = NUnit.Framework.DescriptionAttribute; #endif 我的问题是,如何在一个地方声明NUNIT预处理器符号(App.config左右,会很棒),轻松地在NUnit和VSTests之间切换? 因为当我使用#define NUNIT ,它只适用于写入文件的文件。

如何从xamarin.forms中的Google电子表格中读取数据

我正在寻找一种直接从Google Sheets读取/写入数据的方法。 有没有人知道如何在Xamarin.Forms中做到这一点 ? 请记住,使用Install-Package Google.Apis.Sheets.v4 Package,从Windows Form访问Google sheets表格。 我使用以下链接: https://developers.google.com/sheets/api/quickstart/dotnet

BLL,DAL,OBJ和3层架构

我的问题是关于3层架构。 我的项目简要类似于下面的内容,但令我恼火的是在我在数据库中插入新列后,我必须更新除BLL之外的所有字段。 在表示层中,我创建了一个OBJ以及DAL内部的DAL,还有一个SQL查询。 我必须手动更新所有这些字段。 如果我以“正常”的方式进行,我将所有这些放在表示层中并在一个地方进行更新。 我是否正确应用这种3层架构,使用这种分层架构有哪些优势? 我的第二个问题是: 在DAL内部,我通过_view收集数据。 我想知道,我应该为每个视图编写另一个BOboj吗?我已经有一个BOboj类但它不包含所有字段。 在插入数据时,我必须使用我的BOboj,但是,当列出数据时,我正在使用视图,在这种情况下,我应该为每个视图或另一个东西创建另一个BOboj_view类吗? 什么是easyies方式呢? 例如; 我有20个视图和40个类映射到sql server上的每个表,我的视图收集数据不同的表(这意味着不同的对象)。我应该再创建20个类,除了代表视图的40个? OBJ class BOboj { private int _PId; private string _Name; ……. ……. } DAL BOboj_DAL { public bool Add(BOboj obj) { using (SqlConnection con = Connect.connect) { string sql = “insert into Persons (Id,Name, ……. ……. } BBL BOboj_BLL { ……. […]

发送包含嵌入图像和纯文本的html电子邮件,其中包含与C#中的附件相同的图像

我希望发送一封包含纯文本和HTML版本的电子邮件。 电子邮件需要一个图像与它一起(不是我可以在其他地方托管的图像),如果客户端在html中查看它并且附加到纯文本视图,它应该是嵌入的。 这可能会在所有普通客户中起作用吗? 我最接近的是将图像创建为附件(而不是链接的资源),然后使用cid:filename.jpg在html中引用它。 但是这在gmail中不起作用(它不会在html中显示图像)。

Int32.TryParse()或(int?)command.ExecuteScalar()

我有一个SQL查询,它只返回一个字段 – 一个INT类型的ID。 我必须在C#代码中将其用作整数。 哪种方式更快,占用内存更少? int id; if(Int32.TryParse(command.ExecuteScalar().ToString(), out id)) { // use id } 要么 int? id = (int?)command.ExecuteScalar(); if(id.HasValue) { // use id.Value } 要么 int? id = command.ExecuteScalar() as int?; if(id.HasValue) { // use id.Value }

webbrowser打印

你好 我使用C#WPF webbrowser控件在我的本地机器上显示html文件,我通过执行webbrowser控件的打印命令为我的应用程序添加了一个打印function,但Internet Explorer的默认行为是在屏幕底部打印文件URL,我可以为我的控件打开页眉和页脚打印吗? 有WebBrowser控制打印预览的能力吗? 有时打印页面被剪切,有人可以帮助了解问题是什么。 非常感谢!!!