小编Jer*_*acs的帖子

Visual Studio/NuGet缺少引用

我的解决方案引用存在一些问题,因为有人去搞乱了NuGet ......从源代码控制中恢复使得项目无法加载,我不得不玩一下才能最终得到加载的东西.当我终于能够正确加载我的项目时(在一次头痛之后),我有一个非常大的实验性混乱来清理,现在没有任何构建.

Nuget认为我的依赖项已安装.Visual Studio不同意.

在此输入图像描述

我需要做些什么才能使NuGet和Visual Studio相互认同?

dependencies nuget visual-studio-2012

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

指定要运行的NUnit测试

我有一个NUnit项目,用于创建用于运行测试的控制台应用程序.入口点如下所示:

class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        string[] my_args = { Assembly.GetExecutingAssembly().Location };

        int returnCode = NUnit.ConsoleRunner.Runner.Main(my_args);

        if (returnCode != 0)
            Console.Beep();

    }
}
Run Code Online (Sandbox Code Playgroud)

如果我只想运行这个测试,我可以作为参数传递什么:

[TestFixture]
public class EmailNotificationTest
{
    [Test]
    public void MailerDefaultTest()
    {
        Assert.IsTrue(false);
    }
}
Run Code Online (Sandbox Code Playgroud)

显然这是支持的,同样明显我不知道如何做到这一点.

UPDATE

看起来像v3 +,根据文档,这可以通过--test选项实现.

c# nunit

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

针对特定Google Apps域的MVC4/Google OpenID限制

我创建了一个新的MVC4/.NET4.5项目并启用了Google OpenID.这非常容易.

我的公司已经"google",我们的域/员工身份在Google Apps网站空间中.

如何才允许我们的Google Apps域对我的新网站进行身份验证?我希望这是一个简单的事情,如认证片.

以下是一些其他信息:

  • 我确实创建了一个默认的Web应用程序并启用了Google身份验证部分.我无法相信对Google进行验证是多么简单.
  • 我的公司有数百个电子邮件域名,所有这些域名都汇集在一个电子邮件域"伞"下.例如,我公司的公司电子邮件域名是"foo.com",但在此我们有"x.foo.com","bar.com"和"yomommasougly.net".所有这些都是"foo.com"Google Apps域的一部分.
  • 最终目标是描述需要做什么(以及在何处)采用此默认应用程序并将其限制在"foo.com"域下的所有域.
  • 由于有数百个域,并且一直在添加更多域,因此明确指定每个域是不切实际的.

c# openid asp.net-mvc simplemembership

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

EF Core添加迁移调试

如何通过断点进入OnModelCreating并查看我的逻辑是否错误或者模型构建器是否正在做我不期望的事情?我已经看到很多关于如何调试实际迁移的帖子,但没有关于如何观察模型代码生成方式的内容.

我正试图在我的一些实体上实现一些自定义属性,并且它被忽略了; 我想知道我的配置正在做什么,因为它正在生成模型代码.

c# entity-framework database-migration ef-code-first entity-framework-core

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

关于log4net 1.2.11的另一个问题是冲突

我花了最后2个小时在SO上查看这些问题,似乎没有任何工作.

我有一个使用log4net 1.2.11,通过NuGet的解决方案.它在我运行Windows 7的32位开发工作站上运行良好.它不能在我的64位Windows 2008 R2测试系统上运行.我得到的错误是:

未处理的异常:System.IO.FileLoadException:无法加载文件或程序集'log4net,Version = 1.2.11.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.

我正在查看我的测试系统上的应用程序目录.该log4net.dll文件的版本为1.2.11.

GAC中的版本是1.2.10版.我删除了它.我的开发服务器上有一个版本,还有其他东西; 我也删除了它.我重建了; 我已经重新部署了.我已经添加了

<dependentAssembly>
    <assemblyIdentity name="log4net" publicKeyToken="669E0DDF0BB1AA2A" culture="neutral"/>
    <bindingRedirect oldVersion="0.0.0.0-1.2.10.0" newVersion="1.2.11.0"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

到我的配置文件.似乎没有什么区别.我的部署项目显示正在部署的log4net程序集的正确版本和签名.

我不知道我还能做什么,但是我很沮丧,因为日志库阻止了我的应用程序运行.

我错过了什么?

c# log4net gac

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

log4net logger在基类中定义

我想在我的MVC控制器抽象基类中构建我的log4net记录器,如下所示:

protected static readonly ILog Log = LogManager.GetLogger(typeof(AuthorizedController));
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我可以定义一次记录器并完成它.唯一的问题是日志输出中的logger属性将永远是AuthorizedController,如果我FooController继承了AuthorizedController我想像日志输出那样反映.

这样做会有什么好的KISS,DRY和高效方式?

c# inheritance logging log4net static

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

将EF6 Code First字符串流畅地设置为nvarchar(max)

我正在使用流畅的API构建EF6代码第一个模型.我的理解是,默认情况下,字符串将是nvarchar(max),对于默认值,它(直言不讳)是愚蠢的.所以我添加了以下约定代码来将max default length设置为255个字符:

        modelBuilder.Properties<string>()
            .Configure(p => p.HasMaxLength(255));
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个像这样的装饰器:

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class TextAttribute : Attribute
{
}
Run Code Online (Sandbox Code Playgroud)

我想将此应用于我实际想要成为NVARCHAR(MAX)的特定字符串属性.

我应该在流畅的API中放置什么来确保使用[Text]装饰器的所有字符串属性都是在带有NVARCHAR(MAX)的数据库中构建的?我假设它会是这样的:

        modelBuilder.Properties<string>()
            .Where(p => p.CustomAttributes.Any(a => typeof(TextAttribute).IsAssignableFrom(a.AttributeType)))
            .Configure(p => p.HasMaxLength(?????));
Run Code Online (Sandbox Code Playgroud)

或者我这样做完全错了?

c# entity-framework ef-code-first ef-fluent-api

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

我的单元测试项目图标显示为类库...如何修复?

我的VS2012 Update 1解决方案中有2个c#测试项目,一个显示类库图标,一个显示测试项目图标.他们都作为测试项目,但差异让我发疯.(短途车程).有谁知道如何解决这个问题?我查看了.csproj和.sln文件,但没有任何东西在向我跳跃.

c# visual-studio-2012

13
推荐指数
4
解决办法
3126
查看次数

为什么要换位?

我最近在查看一个保存一些神秘值的配置文件.我碰巧有源可用,所以我看看它在做什么,它保存了一堆不同的值,并将它们相互转移.令我迷惑的是为什么有人会这样做.那么我的问题是:以这种方式存储数字数据有明显的优势吗?我可以看到它可以为字节方式存储稍微小一点的值,但是保存几个字节的存储似乎需要做很多工作.它似乎也会明显变慢.

我遇到的另一种可能性是用于混淆目的.这是比特移位的常见用法吗?

c# bit-manipulation

11
推荐指数
2
解决办法
3204
查看次数

ASP.NET MVC4 ...是"BIN"保留的关键字?

我有一个股票查询应用程序,它根据股票代码返回数据.

基本上,AJAX呼叫转到~/Stocks/GetStockData/{id}其中{id}为股票代码.

一般情况下这很好用.今天,我发现有"BIN"标志的"Progressive Waste Solutions Ltd."股票爆炸了.查看浏览器中的返回数据,我看到它为此符号返回404.

在我看来,BIN可能是一个保留字,要求一些二进制文件或其他东西.是这样的吗?如何在不花费大量精力的情况下解决这个问题?还有其他关键字也会导致此问题吗?

UPDATE

根据Artyom Neustroev,这可能是一个保留的关键字,并且可以防止路由到.他引用了一篇引用网站的文章,其中说明了解决方法是在配置文件中添加以下配置设置:

<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    <!-- ... your other settings ... -->
  </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

......让我更进一步.用这个运行我的网站时,ajax调用返回404.8错误:

HTTP Error 404.8 - Not Found
The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section.
Run Code Online (Sandbox Code Playgroud)

好吧,这实际上是有道理的.路由设置为阻止某人进入我的bin目录,我赞成这种预防.

所以我想知道如何告诉一组特定的方法,如果有一个定义的路线,那么得到的东西BIN,或 CONFIG(理论上)是好的?

c# iis asp.net-mvc asp.net-routing asp.net-mvc-4

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