小编Igo*_*huk的帖子

如何通过可以解析为项目组的命令行将属性传递给MSBuild?

我有以下MSBuild脚本:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Main" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">    
  <PropertyGroup>
    <build_configurations>test1;test2;test3</build_configurations>
  </PropertyGroup>    
  <ItemGroup>
    <BuildConfigurations Include="$(build_configurations)" />
  </ItemGroup>    
  <Target Name="Main">    
    <Message Text="Running with args: %(BuildConfigurations.Identity)" />
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

如果我在没有任何参数的情况下调用脚本,我会得到预期的响应:

Running with args: test1
Running with args: test2
Running with args: test3
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试通过命令行设置属性时,如下所示:

msbuild [myscript] /p:build_configurations=test5%3btest6%3btest7
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:

Running with args: test5;test6;test7
Run Code Online (Sandbox Code Playgroud)

所以,它没有按预期进行批处理.我需要让MSBuild创建具有三个项目而不是一个项目的项目组.我该怎么办?谢谢.

PS以下文章基本上解决了我的问题,除了我想传递以分号分隔的值的情况:http://sedodream.com/CommentView,guid,096a2e3f-fcff-4715-8d00-73d8f​​2491a13.aspx

msbuild

45
推荐指数
1
解决办法
3万
查看次数

是否有一个ReaderWriterLockSlim等同于读者?

我已经使用了ReaderWriterLockSlim一段时间了,到目前为止它已经满足了我的需求.当我继续微调我的应用程序时,我发现这ReaderWriterLockSlim对我的用例来说有点不理想.

根据文献(和我的经验),它有利于作家而不是读者(即当读者和作家排队时,作家会得到偏好).但是,我需要一个有利于读者的同等学历.我理解这种成分的副作用(特别是作家饥饿问题).

是否有人可以指出的任何生产就绪的等价物?谢谢.

.net c# concurrency multithreading readerwriterlockslim

16
推荐指数
1
解决办法
1271
查看次数

为什么只有最后一个菜单项有图标?

在WPF中,我以编程方式向控件添加上下文菜单.

    var contextMenu = new ContextMenu();
    contextMenu.Items.Add(new MenuItem { Header = "Copy All", Icon  = FindResource("CopyImage") });
    contextMenu.Items.Add(new MenuItem { Header = "Copy All with Headers", Icon = FindResource("CopyImage") });
    contextMenu.Items.Add(new MenuItem { Header = "Copy Selected", Icon = FindResource("CopyImage") });
    contextMenu.Items.Add(new MenuItem { Header = "Copy Selected with Headers", Icon = FindResource("CopyImage") });
Run Code Online (Sandbox Code Playgroud)

CopyImage 在我的应用程序资源中定义.

<Image x:Key="CopyImage" Source="../Images/copy.png"/>
Run Code Online (Sandbox Code Playgroud)

在运行时,只有最后一个菜单项显示图标.其他三个菜单项没有.

在此输入图像描述

有没有人对这种行为有解释?

c# wpf

10
推荐指数
1
解决办法
1035
查看次数

如何使用ICSharpCode.TextEditor.TextEditorControl突出显示语法错误?

我正在使用ICSharpCode.TextEditor.TextEditorControl我的DSL编辑器.当我收到DSL编译错误时,我想突出显示有问题的文本以提供更好的用户体验.但是,我很难找到如何做到这一点.

到目前为止,我发现有一个ShowInvalidLines属性,但我没有看到将任何行标记为无效的方法.我也看到HighlightSpanStack财产LineSegmentHighlightingStrategy,但不知道他们应该如何使用.

任何帮助,将不胜感激.谢谢!

sharpdevelop icsharpcode

6
推荐指数
1
解决办法
3036
查看次数

如何将代码覆盖率阈值设置为TeamCity中的高水位线?

我有一个TeamCity构建,可以捕获单元测试的代码覆盖率.我还为构建成功的最小代码覆盖定义了一个环境变量,该工作正常,但我不想手动维护此阈值.我的问题是,是否存在一种方法(在TeamCity之外的某个地方发布代码覆盖率统计数据,然后读取上次成功构建的结果),以便在代码覆盖率提高时自动调整阈值,以确保在不允许的情况下实现稳定的改进倒退:)?

例如,假设当前代码覆盖率为20%(遗留应用程序),并且在编写新的单元测试时,代码覆盖率提高到25%.然后,有人检查新代码而不进行单元测试,代码覆盖率降至24%.我希望TeamCity失败,因为代码覆盖率从25%下降到24%.

teamcity code-coverage teamcity-5.1

5
推荐指数
2
解决办法
1369
查看次数

如何使用MongoDB C#驱动程序获取MongoDB集合的创建日期?

我需要遍历MongoDB数据库中的所有集合,并获得创建每个集合的时间(我知道我可以获取集合中每个对象的时间戳,但我宁愿不去那个路径,如果一个存在更简单/更快的方法).

这应该让你知道我正在尝试做什么:

MongoDatabase _database;
// code elided
var result = _database.GetAllCollectionNames().Select(collectionName =>
    {
        _database.GetCollection( collectionName ) //.{GetCreatedDate())
    });
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-.net-driver

5
推荐指数
2
解决办法
7153
查看次数