使用Visual Studio 2015.创建了一个Windows服务项目.我正在尝试使用topshelf,但似乎无法调试.
输出调试/窗口说:
Topshelf v3.3.154.0,.NET Framework v4.0.30319.42000 Topshelf.Hosts.ConsoleRunHost错误:0:发生异常,System.IO.IOException:操作成功完成.
在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)at System.IO .__ Error.WinIOError()at System.Console.set_Title(String value)at Topshelf.Hosts.ConsoleRunHost.Run()
对于那些不熟悉Topshelf的人:http://docs.topshelf-project.com/en/latest/index.html
我有两台计算机,每台计算机都运行 Community Edition Visual Studio 2015。
两台机器都从同一个 GitHub 主节点构建 Xamarin Forms 应用程序。
每台机器都可以成功地将Android应用程序安装到我的Android手机上。
安装后,应用程序运行没有问题。
两台机器都设置为“在部署之间保留设备上的应用程序数据缓存”
我遇到的问题是应用程序使用的 SQLite 数据库。如果我从其中任何一台计算机安装,该应用程序就可以工作,并且可以保存数据。如果我更改代码并从同一台机器重新部署,SQLite 数据将被保留。但是,如果我切换到另一台机器进行下一次部署,所有数据都会消失。从那时起,可以添加新数据,只要我使用另一台机器,新部署就不会导致数据丢失。如果我切换到另一台机器,下一次部署会删除数据。
我的问题是:无论使用哪台计算机进行部署,我如何才能保持 SQLite 数据库到位?
public class SQLiteService : ISQLiteService
{
string GetPath(string databaseName)
{
if (string.IsNullOrWhiteSpace(databaseName))
{
throw new ArgumentException("Invalid database name", nameof(databaseName));
}
var sqliteFilename = $"{databaseName}.db3";
var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var path = Path.Combine(documentsPath, sqliteFilename);
return path;
}
public SQLiteConnection GetConnection(string databaseName)
{
return new SQLiteConnection(GetPath(databaseName));
}
public long GetSize(string databaseName)
{
var fileInfo = new FileInfo(GetPath(databaseName));
return fileInfo != …Run Code Online (Sandbox Code Playgroud) 我在 TFS 中创建了一个新项目。后来,进入Visual Studio,添加项目文件/sln(并选择Add To Source Control/Create Folder for Solution)。一切都很好,除了我不小心选择了一个 WPF 项目并打算添加一个控制台应用程序。哇!
通过文档化方法删除项目:https : //visualstudio.uservoice.com/forums/330519-visual-studio-team-services/suggestions/3287881-delete-projects
此外,还执行了“撤消挂起的更改”并从 Windows 资源管理器的工作空间中删除了该文件夹。刷新的源代码管理资源管理器/获取最新的根目录。现在,我重新添加为具有相同名称的控制台应用程序,但无法弄清楚此错误的含义。
“Program.cs 已被隐藏”
...但对于项目中的每个文件。有什么建议?是的,我有点坚持使用某个/同名。
在biztalk项目中,为什么有些XSD文件有隐藏的xsd.cs而有些则没有?这些文件用于什么以及为什么,修改XSD和重建不会修改.cs文件?
例如:我有一个XSD,用于将消息映射到SQL发送/接收端口并执行存储过程.如果我更改存储过程(例如更改,删除,添加参数),从而更改xsd以匹配,则在部署业务流程时不会反映这些更改,除非我删除xsd.cs. 我可以在BizTalk管理控制台的Schemas选项卡中看到修改后的xsd.我可以看到它已被修改,但我仍然会收到消息路由/映射错误,除非删除了.cs并重新部署了业务流程.顺便说一句,删除后,它似乎永远不会再生,虽然它也不会导致任何问题.
假设我正在这样做......
public class Customer
{
public Customer()
{
customerID = Guid.NewGuid();
}
public Guid customerID { get; set; } = Guid.NewGuid();
}
Run Code Online (Sandbox Code Playgroud)
...因为,我知道当我的开发团队转向C#6.0时会发生这种情况.哪个优先/被使用(构造函数NewGuid()或属性NewGuid())以及为什么?什么时候我们应该使用一个与另一个作为最佳实践?