我在我们的一个解决方案中使用log4net.该解决方案包含多个项目,每个项目都是一个Unit-Test项目.我使用中所描述的方法,这个帖子来记录添加到各种项目.
我正在使用滚动文件appender将所有测试记录到单个日志文件中,该文件根据大小进行翻转.
我的每个项目都成功登录到日志文件,但是,如果我从多个项目(多个测试程序集)运行测试,我只看到来自第一个程序集的日志记录.
例如,如果我从Project_A
和运行测试Project_B
,我只看到日志记录语句Project_A
(假设Project_A's
测试在测试运行中首先运行)
我已经检查过的事情:
我已将每个项目中的配置文件作为链接包含在内
我已经添加[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
到每个项目的程序集文件中.
我已经分别测试了每个项目,以确保它们在自己运行时成功记录.
环境:VS 2010. TFS.
对于我的一个项目,每当我编译时,VS都会在我的项目中添加一个bin文件夹.我可以删除它,但是当我编译时,它会被重新添加.这是我以前没有见过的行为,在解决方案的其他项目中不存在.请参阅下面的图片了解更多详情.
我在使用Windows服务时相当新,但我发现了一个特殊的事件,我想澄清一下.我有一个用C#编写的Windows服务,我安装并开始使用命令行(在stackoverflow上找到了很棒的指令).我服务的主要方法如下:
static void Main(string[] args)
{
if (args.Length == 0)
{
ServiceBase.Run(new MyServiceName());
}
else if (args.Length == 1)
{
const string name = "MyServiceName";
Type type = typeof(MyAssembly);
switch (args[0])
{
case "-install":
ServiceUtils.InstallService(name, type);
ServiceUtils.StartService(args, name);
break;
case "-uninstall":
ServiceUtils.StopService(name);
ServiceUtils.UninstallService(name, type);
break;
default:
throw new NotImplementedException();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我调试时,我总是向应用程序发送一个参数(-install).因此,第一个if语句(if (args.Length == 0)
永远不会被执行.这是预期的,我的服务安装和启动就好了.但是,如果我删除if语句并只保留if (args.Length == 1)
语句,我的服务安装正确,但它没有启动,我收到以下错误:
无法在计算机上启动MyServiceName'.'
我的问题是:为什么在我的应用程序中永远不执行第一个if语句中的代码?
这是InstallService和StartService方法的支持代码(我也从stackoverflow获得):
public static void InstallService(string serviceName, Type t)
{
if (IsInstalled(serviceName)) return;
try
{ …
Run Code Online (Sandbox Code Playgroud) 主持人:Windows 7
访客:Windows 8
我有一个简单的Vagrantfile,它运行一个PowerShell脚本来配置guest虚拟机.当我打包盒子时,我看到文件已被添加,但是当我运行时vagrant up
我得到了错误shell provisioner:* `path` for shell provisioner does not exist on the host system: D:/VirtualMachines/test/provision.ps1
我验证了provision.ps1
存在于include
目录下的vagrant box位置.
那么为什么provision.ps1
在我运行时没有被复制到它需要的位置vagrant up
?
流浪档案:
VAGRANTFILE_API_VERSION = "2"
modified_name = ENV["COMPUTERNAME"][0..12]
comp_name = modified_name + "TA"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "base"
config.vm.hostname = comp_name
config.vm.communicator = "winrm"
config.vm.network "forwarded_port", host: 3389, guest: 3389, auto_correct: true
config.vm.provision "shell", path: "provision.ps1"
end
Run Code Online (Sandbox Code Playgroud) 我正在创建一个带有弹出界面的离子选择元素。我想设置 ion-select-options 的样式,以便它们跨越屏幕的宽度,但我尝试过的任何东西都不起作用。
<ion-header>
<ion-toolbar>
<ion-buttons slot="secondary">
<ion-button>Cancel</ion-button>
</ion-buttons>
<ion-title>Messages</ion-title>
<ion-buttons slot="primary">
<ion-button>Blah</ion-button>
</ion-buttons>
</ion-toolbar>
<ion-toolbar>
<ion-select interface="popover" placeholder="Select an item">
<ion-select-option value="nes">Lorem Ipsum is simply dummy text of the</ion-select-option>
<ion-select-option value="n64">Nintendo64</ion-select-option>
<ion-select-option value="ps">Blah Blah Ipsum is simply dummy text of the</ion-select-option>
<ion-select-option value="genesis">Sega Genesis</ion-select-option>
</ion-select>
</ion-toolbar>
</ion-header>
Run Code Online (Sandbox Code Playgroud)
我希望选择选项跨越屏幕的宽度。...
如果列表中的任何文本比选择选项长,我可以接受。