C# 为windows service c创建安装程序#
我创建了一个c#windows服务 当我将VisualStudio置于调试模式并运行它时,它工作正常 但是当我创建一个安装程序并安装它时,它不工作(意味着服务安装正确并启动,但我的代码没有运行)。 (我构建了这样的设置) 这是我的代码:C# 为windows service c创建安装程序#,c#,windows,service,C#,Windows,Service,我创建了一个c#windows服务 当我将VisualStudio置于调试模式并运行它时,它工作正常 但是当我创建一个安装程序并安装它时,它不工作(意味着服务安装正确并启动,但我的代码没有运行)。 (我构建了这样的设置) 这是我的代码: 这是我的代码:dropbox.com/s/eq13fng88gk714u/myTelephone.zip?dl=0 static class Program { /// <summary>
这是我的代码:dropbox.com/s/eq13fng88gk714u/myTelephone.zip?dl=0
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
#if DEBUG
myTelephone myService1 = new myTelephone();
myService1.onDebug();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new myTelephone()
};
ServiceBase.Run(ServicesToRun);
#endif
}
你问之前有没有试过用谷歌搜索
无论如何,只要通过nuget使用Topshelf即可。这样,您在调试和安装时总是执行相同的代码。由于您除了“它不工作”之外没有提供任何内容,我将尝试假设:
//为启动过程请求额外的4秒
此。请求额外时间(4000);
或者将访问SQL数据库的代码移出该方法,例如,创建一个新线程并在那里执行所有操作。我认为您正在尝试通过单击ICG exe文件来安装此程序。这是不对的。 请尝试下一步:
net stop $(ProjectName)
sc delete $(ProjectName)
exit /b 0
sc create $(ProjectName) binpath= "$(TargetPath)" start= auto
net start $(ProjectName)
作为生成后事件:
net stop $(ProjectName)
sc delete $(ProjectName)
exit /b 0
sc create $(ProjectName) binpath= "$(TargetPath)" start= auto
net start $(ProjectName)
在每个构建中,您都将安装服务。问题涉及的SQL server在哪里?如果没有必要,移除标签。什么不起作用?你有什么错误吗?Stacktrace?我确信没有任何错误,因为在调试模式下,当我运行我的程序时,它工作正常,并将数据保存在sql Server中。请阅读并详细说明“不工作”。检查事件日志中的错误。项目中是否有安装程序?请看这里:“它不工作”表示服务已正确安装并启动,但我的代码未运行这是我的代码:dropbox.com/s/eq13fng88gk714u/myTelephone.zip?dl=0是否尝试从Visual Studio将调试器附加到服务?不幸的是,我无法从当前位置访问dropbox,因此无法在那里查看您的代码…我可以收到您的电子邮件吗?这是一个非常糟糕的服务开发工作流,根本无法回答OP的问题。OP想在他们的服务项目中添加一个安装程序。这是一种尝试服务可操作性的方法。正如我从discussio OP中了解到的,它将安装程序添加到项目中。这是调试服务的可怕方式。有很多方法可以更好地做到这一点。Бκ,建议一下!这总比批评好