0
我能够直接从Visual Studio运行我的Windows服务,而无需通过点击F5进行安装。为什么Windows服务不提取代码更改?
我能够做到这一点,因为在我的Program.cs有节:
var service = new JSpargoService();
#if DEBUG
var logger = Log.GetLogger<JSpargoService>();
logger.Warn("Start service as console application... for debuging purposes! Please use 'Release' mode to run as windows service!");
service.Start();
Console.WriteLine("Running...");
Console.WriteLine("Press any key to stop program!");
Console.Read();
service.Stop();
#else
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
service
};
ServiceBase.Run(ServicesToRun);
#endif
太好了,我可以调试和走。 这是我的问题。 Windows没有收到我的代码更改。 因此,当我修改我的新代码时,可能会添加一个新变量并将结果返回给它,当我将它悬停在它上面时,它就像var不存在一样。
这就像它不会在调试模式下重新编译。 奇怪。 请帮忙!
当然不是。我阻止它。修改代码。并重新启动它。新代码无法识别。如果您悬停新代码,则什么也没有。如果您将鼠标悬停在旧代码上,您可以看到该值。 新代码上的断点就消失了。 但调试文件夹中的dll有一个像刚编译的日期。这只是没有意义。 – Sam 2014-10-31 19:36:25
好的 - 所以问题并不完全是我以为是的。 我可以将“我的服务开始...”和“我的服务停止...”并在控制台窗口中查看。所以我能够进行编辑。 但服务实例化的另一个类是无法修改和重新编译的类。 – Sam 2014-10-31 19:55:30
我终于注意到代码和行号之间的黄线。所以问题是它不会让我保存文件。但是文件的Tab中没有带名称的asterix。所以看起来它已被保存。 – Sam 2014-10-31 20:37:19