小编Meg*_*ark的帖子

提升 Visual Studio 对构建后事件批处理脚本的权限

我有一个批处理文件,它将目录复制到新位置,创建 2 个其他 .bat 文件、2 个 .json 文件,并插入注册表项。当为命令行运行批处理脚本时,我没有得到任何错误和所有期望的结果。从构建后事件命令行运行它时,我没有收到任何错误,但缺少注册表项。同事建议这可能是由于 Visual Studio 没有管理员权限,而命令行可以。我的问题是:有没有办法(无需以管理员身份运行 Visual Studio)来提升构建后事件的权限?如果您想知道为什么不以管理员身份运行 VS,那是因为该解决方案是通过 TFS 共享的,并且并非我所有的同事都知道针对这一特定解决方案以管理员身份运行其 VS 实例。我用谷歌搜索了一下,没有任何结果。预先感谢您的帮助!这是我正在使用的构建后事件命令行。我再次知道它有效......它只是不会破坏注册表值。CMD 确实如此。附言。在 Windows 7 上使用 VS 2013

if $(ConfigurationName) == Debug call "$(ProjectDir)BatchFiles\DebugHelper.bat" "$(TargetDir)" C:\CEC\Batch\Test\
Run Code Online (Sandbox Code Playgroud)

registry permissions batch-file post-build-event visual-studio

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

添加委托:添加两个Func <T,TResult>时出现意外结果

所以这是我在使用表达式和函数时观察到的奇怪行为.

public int Age { get; set; }
public EyeColor EyeColor { get; set; }
public int Weight { get; set; }

public Func<Person, bool> AgeAndEyesMatch
    {
        get { return IsPersonYoung().Compile() + PersonHasRightEyeColor().Compile(); }
    }

public Func<Person,bool> AgeAndWeightMatch
    {
        get { return IsPersonYoung().Compile() + IsPersonInShape().Compile(); }
    } 

private Expression<Func<Person, bool>> PersonHasRightEyeColor()
    {
        return person => person.EyeColor == EyeColor;
    }

private Expression<Func<Person, bool>> IsPersonYoung()
    {
        return person => person.Age <= Age;
    }

private Expression<Func<Person, bool>>  IsPersonInShape()
    {
        return person => person.Weight …
Run Code Online (Sandbox Code Playgroud)

c# expression operators func

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

如果我有一个带有dbcontext字段的静态类,这是否意味着连接在应用程序的生命周期内保持打开状态?

这可能是一个显而易见的问题......下面是我用于与数据库交互的静态类的框架.我的问题是:如果一个静态类在应用程序的持续时间内存在,那么这是否意味着字段_context将具有一个长时间保持打开状态的连接?或者如果我使用using包装我所做的调用声明,我可以确信连接只会按预期打开和关闭吗?

public static class MyStaticClass
{
    private static dbEntities _context;

    static MyStaticClass()
    {
        _context = new dbEntities();
    }

    private static void UpdateContext()
    {
        _context = new dbEntities();
    }

    public static bool DoSomething(int id)
    {
        using (var context = _context)
        {
            var result = (from x in context.table.where(p=>p.id == id) select x).FirstOrDefault();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# entity-framework static-classes dbcontext

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

使用FluentMigrator根据where子句删除多行

给定Payment表,PaymentStatus表和PaymentHistory表,我需要从PaymentStatus表中删除Payment和PaymentHistory表具有相关记录的状态.所以很自然地意味着删除支付表之前的历史表.当然,历史数据具有多种不同状态的支付记录.我需要的是历史表删除的where子句... sql看起来像这样:

DELETE FROM PaymentHistory 
WHERE PaymentId IN 
(SELECT Id FROM Payment WHERE PaymentStatusCode = 'Processing')
Run Code Online (Sandbox Code Playgroud)

我不明白的是如何在FluentMigrator中实现这一点.这是我到目前为止,但在.FromTable()之后没有.Where()或其他可用的扩展方法

Delete.FromTable("PaymentHistory").Row(new {PaymentStatusCode = "Processing"});
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

c# delete-row fluent-migrator

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

从文本文件读取行超过Int.Max行数

我用Google搜索并查看了几个答案,但我还没有找到解决方案:我有一个.txt文件,其中包含超过int.max的行数.如何读取编号> int.max的特定行?我发现这个问题的答案被列为能够

string line = File.ReadLines(FileName).Skip(14).Take(1).First();
Run Code Online (Sandbox Code Playgroud)

但遗憾的是.Skip()扩展方法不接受Long(或在我需要的情况下为ULong)参数.

所以我开始寻找重载.Skip扩展(或更准确地使我自己)接受ULong并发现对我没有帮助,因为它与Linq实体有关.

请有人帮我理解如何从行号为> int32.Max的文本文件中读取特定行

谢谢

c# file ulong

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

xml序列化导致字段缺失

第三方给了我一个 wsdl。这个 wsdl 是使用 MessageContract 定义的(我很遗憾地说,经过多次谷歌搜索后,我仍然不明白从客户端角度使用MessageContractServiceContract时有什么区别)

实例化一个BaseComplex类型的新复杂对象后,该对象由ComplexA[]ComplexB[]数组组成,其中ComplexADecimalDecimal?定义属性后,我然后调用传入BaseComplex类型的服务方法。(不幸的是,由于防火墙的原因,我无法在本地调试服务请求,但是,我已经验证了BaseComplex.ComplexA.Decimal字段在调用服务之前有一个值。)

将代码放置在服务器上后,我的团队就使用 WireShark 来准确查看通过网络传输的数据包中的内容。当我们看到这个时,ComplexA.Decimal字段已被省略......甚至没有空标签。

我能想到的唯一步骤发生在client.SendRequest(BaseComplex)之间调用和 WireShark 输出显示之间的步骤是 .Net 框架的 Xml 序列化。我已经用谷歌搜索了这个问题,但没有找到任何可以给我指明正确方向的东西。

为什么我的客户端无法正确发出请求 xml?

一些注意事项:

  • 我已将给我的 wsdl 拉入 SoapUI,当在服务器上运行它时,我们看到成功的结果。(我在运行代码时在测试中使用相同的值)
  • 我只是这个 wsdl 的消费者/客户端,无法控制 wsdl/服务定义。
  • 我没有真正理解为什么服务是使用 MessageContract不是ServiceContract完成的......(我之前使用 ServiceContract 从未遇到过这个问题)
  • 该问题最有趣的方面之一是 ComplexBase定义Decimal字段,并且该字段正确序列化。也就是说,Request.DecimalProperty会序列化,但Request.ComplexA.DecimalProperty不会序列化。
  • 其他一些注意事项是,这只是 ComplexA 类型中的 Decimal 和可为 null Decimal 字段的问题。ComplexA.DecimalProperty …

c# xml wcf wsdl web-services

2
推荐指数
1
解决办法
579
查看次数

用于比较string []是否包含给定字符串的lambda表达式

我的项目工作正常,直到我不得不考虑一个字符串数组而不仅仅是一个......我不知道如何解决这个问题.这Country是此方法所在的当前类的属性.它曾经是一个单独的字符串,但现在是一个数组.

最初它看起来像这样:

private Expression<Func<Payment, bool>> CountryMatches()
{
   if (Country.Length < 1) return Skip;
   return payment => payment.Country.ToLower().Contains(Country.ToLower());
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚的是如何设置它,以便如果Country匹配中的任何字符串payment.Country...当然这是传回一个表达式...这是我最好的猜测(但显然不正确)如何做我需要做的事:

private Expression<Func<Payment, bool>> CountryMatches()
{
   if (Country.Length < 1) return Skip;
   return payment => payment.Country.ToLower() == Country.Any().ToLower();
}
Run Code Online (Sandbox Code Playgroud)

c# linq arrays expression

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