(这是一个重复的问题,已在stackoverflow.com中提出.我已经阅读了答案.我已经尝试了解决方案,但这并没有解决我的问题.我将解释我的问题是什么以及有什么问题我做完了).
这是我的问题:
我的应用程序使用System.Data.SQLite.DLL.我引用它并在我的计算机中正常运行,但它无法在另一台计算机上运行.这是错误消息:
System.IO.FileLoadException:无法加载文件或程序集'System.Data.SQLite,Version = 1.0.88.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依赖项之一.应用程序无法启动,因为它的并排
配置不正确.有关更多详细信息,请参阅应用程序事件日志或使用命令行sxstrace.exe工具.
(来自HRESULT的异常:0x800736B1)文件名:'System.Data.SQLite,Version = 1.0.88.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'---> System.Runtime.InteropServices.COMException(0x800736B1):应用程序失败开始,因为它的并排
配置不正确.有关更多详细信息,请参阅应用程序事件日志或使用命令行sxstrace.exe工具.
(来自HRESULT的异常:0x800736B1)SimPB.config.PrepareDatabase(),位于SimPB.Program.Main()的SimPB.config.InitializeProgram()
我的电脑运行Windows 7 32位,Visual Studio 2010.
另一台计算机也运行Windows 7 32位,没有安装Visual Studio.
我尝试过的:
尝试1:确保使用Release + x86构建应用程序,并使用目标框架构建应用程序:.NET Framework 2.0.完成.
尝试2:确保使用正确版本的System.Data.SQLite引用该应用程序,该版本是x86 + .Net Framework 2.0(sqlite-netFx20-binary-Win32-2005-1.0.88.0).完成
尝试3:在App.config上尝试这些代码:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
还有这个
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
还有这个
<?xml version="1.0" …Run Code Online (Sandbox Code Playgroud) 我今天早上遇到了这个问题,我无法改变开源项目的目标框架.Target框架选项下拉列表处于非活动/禁用状态.如何使其与.NET Framework 2.0一起使用?
这是下载链接:https://dev.mysql.com/downloads/connector/net/6.10.html
顺便说一句,可能重复的问题?已经链接的"另一个问题"是VS2008.我正在使用VS2017,今天的日期是2018年.相关的问题大约是10年.事情在10年内发生了很大的变化.该链接中提供的解决方案几乎不适用.
有没有比这样做更快的其他方法?
private void EscapeStringSequence(ref string data)
{
data = data.Replace("\\", "\\\\"); // Backslash
data = data.Replace("\r", "\\r"); // Carriage return
data = data.Replace("\n", "\\n"); // New Line
data = data.Replace("\a", "\\a"); // Vertical tab
data = data.Replace("\b", "\\b"); // Backspace
data = data.Replace("\f", "\\f"); // Formfeed
data = data.Replace("\t", "\\t"); // Horizontal tab
data = data.Replace("\v", "\\v"); // Vertical tab
data = data.Replace("\"", "\\\""); // Double quotation mark
data = data.Replace("'", "\\'"); // Single quotation mark
}
Run Code Online (Sandbox Code Playgroud)
- 编辑(添加说明) - …
我已经在stackoverflow上阅读了其他答案.但这些解决方案都不适合我.
我正在尝试通过live.com发送电子邮件,但无法使用它.
错误消息:
mailbox unavailable. The server response was: 5.7.3 requested action aborted;
user not authenticated
Run Code Online (Sandbox Code Playgroud)
代码:
MailMessage mail = new MailMessage();
mail.From = new MailAddress("email@live.com");
mail.To.Add("someone@someone.com");
mail.Subject = "hello";
mail.Body = "awefkljj kawefl";
mail.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient("smtp.live.com", 587);
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("email@live.com", "password");
smtp.Send(mail);
Run Code Online (Sandbox Code Playgroud)
您是否可以使用上述代码发送电子邮件?
它在去年之前有效,但它现在已经不复存在了.
什么改变了?
我的程序有以下声明的3个警告:
这种异步方法缺少"等待"运算符并将同步运行.考虑使用'await'运算符等待非阻塞API调用,或'await Task.Run(...)'在后台线程上执行CPU绑定工作.
试着告诉我什么警告?我该怎么办?
这是我的代码:它是否使用多线程运行?
static void Main(string[] args)
{
Task task1 = new Task(Work1);
Task task2 = new Task(Work2);
Task task3 = new Task(Work3);
task1.Start();
task2.Start();
task3.Start();
Console.ReadKey();
}
static async void Work1()
{
Console.WriteLine("10 started");
Thread.Sleep(10000);
Console.WriteLine("10 completed");
}
static async void Work2()
{
Console.WriteLine("3 started");
Thread.Sleep(3000);
Console.WriteLine("3 completed");
}
static async void Work3()
{
Console.WriteLine("5 started");
Thread.Sleep(5000);
Console.WriteLine("5 completed");
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
我应该如何在MySQL表中存储GUID?
VARCHAR将返回,因为string
BLOB将返回,byte[]
但是,哪个列类型的MySQL将作为System.Guid在C#中返回
感谢.
编辑:我找到答案
感谢DaveHogan,它给了我关于ORM(对象关系映射)的线索
我开始寻找有关Connector/NET所做的数据类型转换(映射)的信息.我正在使用MySQL Dot Net Connector(Connector/NET)
,连接器/ NET执行不同的3种情况.
以下是我发现的内容:
第一种情况:
从Connnector/NET 6.1.1开始,CHAR(36)将自动转换为C#中的System.GUID,BINARY(16)将被视为System.Byte [].
第二种情况:
如果使用较旧的Connector/NET,当值传递给C#时,BINARY(16)将自动转换为System.GUID,而CHAR(36)将被视为System.String.
第三种情况:
如果您使用较新的Connector/NET(比6.1.1更新),并且如果您想使用BINARY(16) AS System.GUID(默认情况下不是),则必须添加连接选项Old Guids =连接字符串中为true.
例:
server=localhost;user=root;password=qwerty;database=test;old guids=true;
通过这个,CHAR(36)将被转换为System.String和BINARY(16) = System.GUID
阅读更多关于Old Guids的连接选项的信息:
MySQL 5.6参考手册:21.2.6.连接器/网络连接字符串选项参考
------------------------------------------- ---------------------------
额外信息:
如何将System.GUID插入MySql数据库
----------- -------------------------------------------------- ---------
这是一个示例表,我们将插入System.GUID:
CREATE TABLE `testdata` ( `id` int(10) unsigned NOT NULL …
这些是web.config中的代码:
<system.web>
<customErrors mode="Off" >
</customErrors>
</system.web>
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<clear />
<error statusCode="404" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" />
<error statusCode="500" prefixLanguageFilePath="" path="/ResourceNotFound" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
以上设置仅重定向404和500的httpError.
但不是手动添加400,401,403 ....等所有错误代码... ...
我们可以设置它将所有错误重定向到相同的URL而不键入所有错误代码吗?
<error statusCode="400" .....
<error statusCode="401" .....
<error statusCode="403" .....
<error statusCode="404" .....
<error statusCode="xxx" ....
Run Code Online (Sandbox Code Playgroud) 我收到一个错误:
'c:......\xxxx.csproj'目标'.NETStandard,Version = v2.0'.它不能被针对".NETFramework,Version = v2.0"的项目引用.WindowsFormsApp1
怎么解决?
错误信息:
配置不针对设备。
您的配置未针对有效的 iOS 设备
我想将 iPhone 应用程序发布到 App Store。因此,我尝试通过选择顶部主菜单栏来执行存档以发布 iPhone 应用程序:
构建 > 存档以供发布
我已经从顶部主菜单栏的下拉菜单中选择了一个设备。但我仍然收到上述错误消息。我应该怎么办?
我没有实体 iPhone。我只用 iPhone 模拟器。是否必须使用真机来签名App并提交到App Store?
不再需要物理 iOS (iPhone) 设备来存档应用程序并将其提交到 AppStore。
我已经在stackoverflow上阅读了其他答案.但这些解决方案都不适合我.
我正在尝试通过live.com发送电子邮件,但无法使用它.
错误消息:
mailbox unavailable. The server response was: 5.7.3 requested action aborted;
user not authenticated
Run Code Online (Sandbox Code Playgroud)
或错误信息:
System.Net.Mail.SmtpException: Service not available,
closing transmission channel.
The server response was: Cannot connect to SMTP server 65.55.176.126
(65.55.176.126:587), NB connect error 1460
Run Code Online (Sandbox Code Playgroud)
代码:
MailMessage mail = new MailMessage();
mail.From = new MailAddress("email@live.com");
mail.To.Add("someone@someone.com");
mail.Subject = "hello";
mail.Body = "awefkljj kawefl";
mail.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient("smtp.live.com", 587);
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential("email@live.com", "password");
smtp.Send(mail);
Run Code Online (Sandbox Code Playgroud)
您是否可以使用上述代码发送电子邮件?
它在去年之前有效,但它现在已经不复存在了.
我不确定live.com电子邮件服务器有什么变化.
应该应用哪些新设置或参数?
我一直在使用C# 中的MySqlBackup.dll备份 MySQL 表。我不知道如何备份 MySQL 模式中的特定表。如何使用 C# 仅备份一两个特定表?
我正在尝试在后面的代码中添加 WKWebView 组件。在iPhone模拟器中构建部署并运行后,只有一个白色的空白页面,没有其他内容。我做错了什么。下面是我的代码:
using System;
using WebKit;
using UIKit;
using Foundation;
namespace bbbb
{
public partial class ViewController : UIViewController
{
WKWebView wk = null;
protected ViewController(IntPtr handle) : base(handle)
{
// Note: this .ctor should not contain any initialization logic.
}
public override void LoadView()
{
base.LoadView();
NSCoder nc = new NSCoder();
wk = new WKWebView(nc);
View.Add(wk);
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
// Perform any additional setup after loading the view, typically from a nib.
string url …Run Code Online (Sandbox Code Playgroud) 我需要在循环中附加大量字符串,这将创建一个非常长的字符串.
1GB应该足够长以存储字符串,因此我这样做:
var sb = new StringBuilder(1024 * 1024 * 1024);
Run Code Online (Sandbox Code Playgroud)
但收到此错误
'System.OutOfMemoryException' was thrown
Run Code Online (Sandbox Code Playgroud)
任何追加长串的建议?
我正在为MySQL数据库编写备份工具.这些工具将从数据库导出数据并写入文本文件.数据包含BLOB和TEXT数据类型.所以,期待很长的字符串.
这是代码:代码更新1
var conn = new MySqlConnection(Program.ConnectionString);
var cmd = new MySqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = selectSQL;
MySqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
var sb = new StringBuilder(1024 * 1024 * 1024);
for (int i = 0; i < rdr.FieldCount; i++)
{
if (sb.Length > 0)
sb.AppendFormat(separator);
if (rdr[i].GetType() == typeof(byte[]))
{
sb.AppendFormat(ConvertByteArrayToHexString((byte[])rdr[i]));
}
else
sb.AppendFormat(rdr[i] + "");
}
WriteToFile(sb.ToString()); …Run Code Online (Sandbox Code Playgroud) c# ×11
mysql ×3
email ×2
.net-2.0 ×1
app-store ×1
asp.net ×1
async-await ×1
asynchronous ×1
c#-4.0 ×1
hotmail ×1
ios ×1
iphone ×1
mysql-backup ×1
performance ×1
web-config ×1
winforms ×1
wkwebview ×1
xamarin ×1