小编Los*_*nos的帖子

GlobalSection(ExtensibilityGlobals)= postSolution,它在我的Visual Studio 2012解决方案文件中做了什么?

我的VS解决方案文件以.结尾

GlobalSection(ExtensibilityGlobals) = postSolution
    EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.2\lib\NET35;packages\Unity.Interception.2.1.505.2\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Logging.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.ExceptionHandling.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.PolicyInjection.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Validation.5.0.505.0\lib\NET35
EndGlobalSection
Run Code Online (Sandbox Code Playgroud)

它的目的是什么?

TL; DR

在一个解决方案中,我的VS2012总是想要查看解决方案文件但它没有做任何事情.
我通过删除所述行找到了补救措施.有用.
但我想知道是否有任何副作用.

tfs solution visual-studio-2012

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

通用.NET类中的public static(const)

是否有语法技巧来获取泛型类中的常量而不指定(ad-hoc)类型?

public class MyClass<T>{
    public const string MyConstant = "fortytwo";
}

// I try to avoid this type specification.
var doeswork = MyClass<object>.MyConstant;  

// Syntax similar to what I'd like to accomplish.
var doesnotwork = MyClass.MyConstant;  
Run Code Online (Sandbox Code Playgroud)

有一个关于静态变量(常量)不在不同类型之间共享的警告MyClass<object>,MyClass<int>但我的问题是可能的语法技巧.

.net c# generics syntax

8
推荐指数
2
解决办法
2070
查看次数

为什么我的装配需要按特定顺序加载?

我正在写一个简单的插件,偶然发现根据contractType.IsAssignableFrom(pluginType)加载顺序返回不同的结果.

调用IsAssignableFromPlugin会按预期返回True.
但是如果我加载Plugin 之前加载Contract程序集,那么IsAssignableFrom在Plugin上返回False.

我正在运行Win10和dotnet4.7,但我怀疑它有任何相关性.


[TestMethod]
public void SimplyLoadingPlugin_Succeeds()
{
    var plugin = Assembly.LoadFrom(PluginPathFilename);
    var res = typeof(Contract).IsAssignableFrom(plugin.GetExportedTypes().Single());

    Assert.IsTrue(res); // Succeeds.
}

[TestMethod]
public void LoadingContractAndThenPlugin_Fails()
{
    var contract = Assembly.LoadFrom(ContractPathFilename);
    var plugin = Assembly.LoadFrom(PluginPathFilename);
    var res = typeof(Contract).IsAssignableFrom(plugin.GetExportedTypes().Single());

    Assert.IsTrue(res); // Fails.
}
Run Code Online (Sandbox Code Playgroud)

使测试更难:
如果我LoadingContractAndThenPlugin_Fails自己运行测试失败.但如果我一起运行测试,它依赖于订单.SimplyLoadingPlugin_Succeeds第一个和LoadingContractAndThenPlugin_Fails最后一个运行,使两个测试都变为绿色,但是以相反的顺序运行它们都会失败.
所以不知何故,插件之前的合同加载会给我带来麻烦.
我可以在GAC中找不到任何相关内容.


以下是所有需要的文件.可能必须更新路径.
4项目,每个项目一个文件.1解决方案.

Contract.cs(图书馆项目)

public abstract class Contract
{
    public abstract int Version { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

NUnit3TestExecutor转换了279个NUnit测试用例中的279个

我得到NUnit3TestExecutor converted 279 of 279 NUnit test cases的输出,当我编译。为什么?
我想该解决方案已经从2升级到3,但这只是我的全部线索。

我已经检查过我们仅使用Nunit3。279
只是我们进行的所有测试中的一部分。

更新

挖到NUnit3TestExecutor我发现

private void RunAssembly(string assemblyName, TestFilter filter) {
    ...
    var nunitTestCases = loadResult.SelectNodes("//test-case");
    ...
    foreach (XmlNode testNode in nunitTestCases){
        loadedTestCases.Add(testConverter.ConvertTestCase(testNode));
    }
    TestLog.Info(string.Format("NUnit3TestExecutor converted {0} of {1} NUnit test cases", loadedTestCases.Count, nunitTestCases.Count));
    ...
}
Run Code Online (Sandbox Code Playgroud)

ConvertTestCase 看起来像这样

    /// <summary>
    /// Converts an NUnit test into a TestCase for Visual Studio,
    /// using the best method available according to the exact
    /// type passed and caching results …
Run Code Online (Sandbox Code Playgroud)

nunit-3.0

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

在Vbnet中有一个空条件运算符吗?

c在C#中有一个空条件运算符?.(有时称为Elvis运算符),如下所示:

var name = project?.customer?.name;
Run Code Online (Sandbox Code Playgroud)

它不会失败,而是返回nullif projectcustomernull.

VB.NET中有相同的东西吗?

请注意,我不是在寻找,If(b, x, y)而是非常?.替代.

c# vb.net

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

Powershell 强制重新加载以使用模块

有没有办法强制 PowerShell 在 时重新加载模块using module .\MyModule.psm1

通常我会使用Import-Module .\MyModule.psm1 -Force,但由于我使用的enumclassC# 风格,所以这是行不通的;因为如果我使用 ,enum则 和class在模块外部不可见Import-Module

我不能先使用Import-Module然后再使用using module,因为using module必须在第一行。

我的PS版本是5.1.14409.1005

powershell powershell-v5.1

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

Aspnet网站管理工具,Users表或aspnet_users表

为什么我的用户和角色最终会出现在用户角色表中,而不是aspnet_users和aspnet_roles?


当我使用Aspnet网站管理工具(visualstudio-> menu-> project-> aspnet配置添加用户时,它最终会在Users表中;以及Roles表中的新角色.

我读过的关于这个主题的一切都是aspnet_users和aspnnet_roles.

我正在使用aspnetmvc4(beta),sqlserver2008r2,visualstudio2010.我已经通过aspnet_regsql.exe在数据库中创建了aspnet_xxx-tables.我嗅探sqlserver并获取针对用户和角色的查询.它甚至创建了一个Applications表.

根据请求,web.config的成员资格部分:

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add connectionStringName="DefaultConnection" enablePasswordRetrieval="false"
      enablePasswordReset="true" requiresQuestionAndAnswer="false"
      requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" 
      minRequiredPasswordLength="6"
      minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
      applicationName="/"
         name="DefaultMembershipProvider"
         type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </providers>
</membership>
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-membership

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

SignalR(具有自托管Nancy)显示404用于协商?clientProtocol = 1.3

我试图在控制台应用程序中运行Nancy中的SignalR.

当我的浏览器$.connection.hub.start()它得到404 - NotFound//localhost:667/negotiate?clientProtocol=1.3

---- 8 <----

我(尝试)在一个端口上运行Nancy而在另一个端口上运行SignalR.南希与剃刀合作.SignalR返回集线器javascript.

(对不起下面的代码量,但是我无法进一步减少它.)
(这个问题可能会从之前已被删除的问题中得到认可 - 我已经标记错误.)

客户代码:

    <script type="text/javascript" src='/Scripts/jquery-1.6.4.min.js'></script>
    <script type="text/javascript" src="/Scripts/jquery.signalR-2.0.0-beta2.js"></script>
    <script src="http://localhost:667/signalr/hubs" type="text/javascript"></script>
var chat;
$(function () {
    $.connection.hub.url = '//localhost:667';
    $.connection.hub.logging = true;
    chat = $.connection.chat;
    chat.client.addMessage = onAddMessage; // declared but not here

    $.connection.hub.start()
        .done(function () {
            alert($.connection.id);
            chat.server.send('Works!');
        })
        .fail(function ( failreason ) {
            alert( failreason );
        });
});
Run Code Online (Sandbox Code Playgroud)

服务器代码(在作为admin运行的控制台程序中)

class Program
{
    static void Main(string[] args)
    {
        const string webUrl = "http://localhost:666"; …
Run Code Online (Sandbox Code Playgroud)

.net self-hosting nancy signalr

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

如何模拟文件的FileInfo信息?

我有一个场景,我需要FileInfo结构中的大部分信息 - 创建时间,最后写入时间,文件大小等.我需要能够干净地获取这些信息,但也能够真正地进行单元测试而不需要点击文件系统.

我正在使用System.IO.Abstractions,所以除了这一个,我的大部分课程都能获得99%的成绩.我不知道如何使用它从我的MockFileSystem对象获取我需要的信息.

public void Initialize(IFileSystem fs, string fullyQualifiedFileName)
{
    string pathOnly = fs.Path.GetDirectoryName(fullyQualifiedFileName);
    string fileName = fs.Path.GetFileName(fullyQualifiedFileName);

    // Here's what I don't know how to separate out and mock
    FileInfo fi = new FileInfo(fullyQualifiedFileName);

    long size = fi.LongLength;
    DateTime lastWrite = fi.LastWriteTime;
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

任何有关该行的帮助将不胜感激.

更新:

这不是现有问题的完全重复,因为我问我该System.IO.Abstractions怎么做,而不是我一般如何做.

对于那些感兴趣的人,我确实找到了实现它的方法:

FileInfoBase fi = fs.FileInfo.FromFileName(fullFilePath);
Run Code Online (Sandbox Code Playgroud)

如果我使用这一行,我会在TEST和PROD环境中获得相同的信息.

c# unit-testing

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

我可以在Visual Studio解决方案中列出所有*不可用*项目吗?

我有一个包含90多个项目的解决方案,其中有许多文件夹"隐藏"解决方案资源管理器树中的项目.
由于长时间合并的摇摇欲坠,我有一些不正确的csproj文件.有没有办法获得这些列表?

我可以手动递归树并查找所有"YetAProject(不可用)"项目,但更喜欢更快,更少手动的方式.

我尝试过建设,但因为它们不可用,所以它们没有编译,因此没有任何痕迹.

c# visual-studio-2017

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