小编seb*_*aan的帖子

如何使用Winmerge与Git扩展?

我正在使用Git Extensions,它预先安装并设置KDiff作为解决合并冲突的diff工具.我非常喜欢Winmerge,并希望用Winmerge取代KDiff.

在Git Extensions设置中,有一些设置可以更改Mergetool,但我似乎无法弄清楚我应该使用什么语法以及为什么.似乎有4个变量:$ BASE,$ LOCAL,$ REMOTE,$ MERGED.看来我应该将这些传递给WinMergeU.exe,但是哪个命令行参数?

我曾尝试过几次搜索,但实际上似乎没有答案.

git settings winmerge git-extensions

52
推荐指数
4
解决办法
3万
查看次数

使用Cassini而不是IIS有什么(dis)优势?

我发现在某些情况下我可以在调试时编辑源代码,使用Visual Studio内置的Web服务器而不是IIS中的虚拟目录有什么其他优点吗?

我在我的开发环境中使用Windows XP,以及IIS 5的本地实例.我在几个项目上工作,因此我使用多个虚拟目录来管理所有不同的站点.

有什么缺点吗?

asp.net iis cassini visual-studio

51
推荐指数
7
解决办法
1万
查看次数

XDT转换:InsertBefore - 忽略定位器条件

我有一个web.config文件,我需要插入该<configSections />元素或操作该节点的子节点(如果它已经存在).
如果它已经存在,我不想再插入它(显然,因为它只允许存在一次).

通常,这不会是一个问题,但是:

如果此元素位于配置文件中,则它必须是元素的第一个子元素.

资料来源:MSDN.

所以,如果我使用xdt:Transform="InsertIfMissing"<configSections />元素将始终任何现有的子元素后插入(及总有一些),违反不必是第一个子元素的它上面的限制<configuration />

我试图通过以下方式完成这项工作:

 <configSections
    xdt:Transform="InsertBefore(/configuration/*[1])"
    xdt:Locator="Condition(not(.))" />
Run Code Online (Sandbox Code Playgroud)

如果<configSections />元素尚不存在,哪个工作完美.但是,我指定的条件似乎被忽略了.

事实上,我尝试了一些条件,如:

Condition(not(/configuration[configSections]))
Condition(/configuration[configSections] = false())
Condition(not(/configuration/configSections))
Condition(/configuration/configSections = false())
Run Code Online (Sandbox Code Playgroud)

最后,出于绝望,我试过:

Condition(true() = false()) 
Run Code Online (Sandbox Code Playgroud)

它仍然插入了<configSections />元素.

重要的是要注意我正在尝试将其包含在NuGet包中,因此我将无法使用自定义转换(如AppHarbor使用的那个).

有没有其他聪明的方法可以将我的元素放在正确的位置,只有它尚不存在?

要测试它,请使用AppHarbors配置转换测试器.用以下内容替换Web.config:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="initialSection" />
  </configSections>
</configuration>
Run Code Online (Sandbox Code Playgroud)

和Web.Debug.config具有以下内容:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">

  <configSections
    xdt:Transform="InsertBefore(/configuration/*[1])"
    xdt:Locator="Condition(true() = false())" />

  <configSections>
    <section name="mySection" xdt:Transform="Insert" />
  </configSections>

</configuration>
Run Code Online (Sandbox Code Playgroud)

结果将显示两个<configSections /> …

web-config web-config-transform xdt-transform

23
推荐指数
1
解决办法
9703
查看次数

在Visual Studio中,我可以将断点放在我只有调试符号的代码中吗?

由于我无法访问我正在使用的库的完整源代码,但我确实有pdb文件,是否可以在"调试源代码"中设置断点?

如果是这样,我该怎么做?

debugging symbols breakpoints visual-studio pdb-files

17
推荐指数
1
解决办法
5663
查看次数

如何在vb.net中生成Code39条形码

我想从我的应用程序创建Code39编码的条形码.

我知道我可以使用字体,但我不想这样做,因为我必须在服务器上注册字体,而且我有一些非常不好的经历.

在提出这个问题之后我提出的一个例子就是答案

.net vb.net barcode

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

如何让msbuild任务对一组文件进行配置转换?

我试图转换我所拥有的项目中的所有web.config文件,这是我的树结构:

  • Transform.bat
  • 变换
    • ConfigTransform.proj
    • Web.Transform.config
  • 网站
    • web.config中
    • 查看
      • web.config中

还有更多的web.config文件,但我们的想法是,它会找到所有这些文件并对它们应用相同的配置转换.

我从我发现的博客文章中得到了一些提示,但是我在最后一步,即实际的转变中陷入困境.中间还有一些我不喜欢的粗略部分(我不太明白我在做什么,我显然做错了).这是我到目前为止的地方:

<Project ToolsVersion="4.0" DefaultTargets="Transform" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask TaskName="TransformXml" AssemblyFile="Tools\Microsoft.Web.Publishing.Tasks.dll"/>

    <PropertyGroup>
        <SitePath>..\..\Website</SitePath>
        <WebConfigTransformInputFile>$(SitePath)\Web.config</WebConfigTransformInputFile>
        <WebConfigTransformFile>Web.Transform.config</WebConfigTransformFile>
        <OutDir>..\N\N\</OutDir>

    </PropertyGroup>

    <ItemGroup>
        <_FilesToTransform Include="$(SitePath)\**\web.config"/>
    </ItemGroup>

    <Target Name="Transform">

    <MakeDir Directories="@(_FilesToTransform->'$(OutDir)%(RelativeDir)')" />

    <TransformXml Source="@(_FilesToTransform->'$(OutDir)%(RelativeDir)%(Filename)%(Extension)')"
                  Transform="$(WebConfigTransformFile)"
                  Destination="@(_FilesToTransform->'$(OutDir)%(RelativeDir)%(Filename)%(Extension)')" />
    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

我的Transform.bat看起来像这样:

%systemroot%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe %CD%\Transforms\ConfigTransform.proj
Run Code Online (Sandbox Code Playgroud)

因此,当我调用批处理时,会创建相应的目录.然而,正如你所看到的,我必须对OutDir有点创意,使它成为..\N\N.出于某种原因,如果我不这样做,OutDir路径将与输入目录完全相同.所以我显然需要在MakeDir中改变一些东西,但我不确定是什么.

真正的问题出现在它开始进行变换时.我试图保持TransformXml Source参数像这样或类似:

@(_FilesToTransformNotAppConfig->'%(FullPath)')
Run Code Online (Sandbox Code Playgroud)

后者给我一个错误"无法打开源文件:不支持给定路径的格式." 而前者给了我这个输出:

Build started 30-4-2012 14:02:48.
Project "D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj" on node 1 (default targets).
Transform:
  Creating directory "..\N\N\..\..\Website\Views\".
  Transforming Source File: ..\N\N\..\..\Website\Views\Web.config;..\N\N\..\..\Website\Web.config
D:\Dev\transform\DoTransforms\Transforms\ConfigTransform.proj(32,2): error : Could not open Source file: Could not …
Run Code Online (Sandbox Code Playgroud)

msbuild msbuild-task web-config-transform slowcheetah

8
推荐指数
1
解决办法
9079
查看次数

如何阻止Ninject重写自定义DataAnnotationsModelValidatorProvider?

我有一个自定义DataAnnotationsModelValidatorProvider,用于以更动态的方式进行模型验证,然后只添加属性.我试图将我的提供添加到global.asax.cs,如下所示:

ModelValidatorProviders.Providers.Clear();
ModelValidatorProviders.Providers.Add(new AttributeValidatorProvider());
Run Code Online (Sandbox Code Playgroud)

但是一旦我加载了表单,我就会收到一条错误消息:"不显眼的客户端验证规则中的验证类型名称必须是唯一的.以下验证类型不止一次出现:必需".

根据这篇博客的评论,这是因为Ninject重写了自定义验证器提供商.

我是MVC的新手,我似乎无法找到告诉Ninject接受我的自定义提供商的方法,我将如何解决这个问题?

为了记录:我不想使用Fluentvalidation.net,我想坚持使用默认的MVC验证(大多数情况下).

ninject customvalidator ninject.web.mvc asp.net-mvc-3

7
推荐指数
2
解决办法
2234
查看次数

<%#和<%=开启代码有什么区别?

在编辑aspx文件时,我发现这两个开放标签看起来都是一样的.是否存在差异,如果是,那又是什么?

.net asp.net

5
推荐指数
1
解决办法
516
查看次数

C#修改IEnumerable的谜团,修改我的IEnumerable是什么?

我编写了一个扩展方法来向(EF)EntityCollection添加项目.我收到一个有趣的错误,说我的IEnumerable("items")集合在foreach的第一个循环之后被修改了.当我将项目转换为items.ToList()(如下面的代码中),它工作正常.

我完全理解,执行ToList()将生成foreach将在其上运行的项目的副本.

我不明白的是当我对它进行预测时修改IEnumerable的是什么.

更新:不知何故,似乎items变量与collections变量相同?

更新2:我认为收集和实体可能会受到EF实体跟踪的影响,但我仍然无法理解原因

用法:

ssp.ServiceAreas.ReplaceCollection(model.ServiceAreas);

这是我的扩展方法:

    public static void AddOrUpdate<TEntity>(this EntityCollection<TEntity> collection, IEnumerable<TEntity> items)
        where TEntity : EntityObject, IProjectIdentity<int>, new()
    {
        foreach (var item in items.ToList())
            collection.AddOrUpdate(item);
    }

    public static void AddOrUpdate<TEntity>(this EntityCollection<TEntity> collection, TEntity item)
        where TEntity : EntityObject, IProjectIdentity<int>, new()
    {
        if (item.ID > 0 && collection.Any(c => c.ID == item.ID))
            collection.Remove(collection.First(c => c.ID == item.ID));
        // For now, the Remove NEVER gets hit

        collection.Add(item);
    }
Run Code Online (Sandbox Code Playgroud)

c# ienumerable extension-methods

5
推荐指数
1
解决办法
471
查看次数

我现在如何改进这个价格计算代码进行4次计算,但是在不久的将来会有更多呢?

我正在努力研究如何改进我编写的一些代码,这些代码使用一些规则来计算汽车保险的几个不同的价格.这是困扰我的作品:

public Insurance GetInsurance(CarData carData)
{
    var insurance = new Insurance();

    insurance.priceGeneral = this.CalculatePrice(new Car { BrandDealer = false, MonthPayment = false, CarData = carData });
    insurance.priceGeneralMonth = this.CalculatePrice(new Car { BrandDealer = false, MonthPayment = true, CarData = carData });
    insurance.priceBrandDealer = this.CalculatePrice(new Car { BrandDealer = true, MonthPayment = false, CarData = carData });
    insurance.priceBrandDealerMonth = this.CalculatePrice(new Car { BrandDealer = true, MonthPayment = true, CarData = carData });

    return insurance;
}
Run Code Online (Sandbox Code Playgroud)

请注意,计算每月支付超过正常价格(年度支付)存在显着差异,并且依赖于BrandDealer是真还是假,还有不同的计算方法.我试图消除这个变量,但客户要求这些规则.

我知道有些属性不是"Car"的实际属性,但我很快就会重构.

我被4次这样的计算所困扰,将来会有更多的规则.即将推出的新规则将添加另一个布尔值和另外两个计算.

是否有一些不错的设计模式,我在这里没有发现我应该使用的?

c# design-patterns

5
推荐指数
1
解决办法
571
查看次数

如何在HG/Mercurial中设置一个由存储库决定的钩子?

我需要在更新后运行一个钩子(这将构建他们已经更新的解决方案)并且我不想为每个克隆我的中央存储库的人手动添加该钩子.

当有人第一次克隆我的中央存储库时,是否可以在该克隆中包含挂钩?似乎.hgrc文件不会自动克隆.

我确实阅读过有关站点范围内的钩子,但据我所知,它们可以在每个创建的存储库上工作,我只想在某些存储库中使用钩子.

mercurial hgrc mercurial-hook

4
推荐指数
1
解决办法
3077
查看次数