我非常希望看到实际的构建事件脚本以进行调试.我已经尝试使用@echo引导脚本,根据文档应该可以工作,但是我还没有在构建输出中看到除exe或显式"echo some text"输出之外的任何内容.
这是我的构建事件:
echo on
cd $(ProjectDir)_dev
PostBuildEvents.bat $(ConfigurationName) $(TargetName)
Run Code Online (Sandbox Code Playgroud)
我确实在输出中看到了这个文本,但是在.bat文件中没有看到任何内容.我还尝试在批处理文件的顶部添加echo,但这也不起作用.
我很难确定增加性能计数器所需的权限.当我试图在计数器上调用.Increment时,我只有一次出现InvalidOperationException/Access Denied(我认为).这引出了以下信息:
http://support.microsoft.com/kb/555129
将性能计数器更新到生产环境的ASP.NET应用程序移动过程中遇到的最大问题是权限.默认情况下,为了增加性能计数器,用户需要具有管理员或高级用户权限.
从那里我将用户添加到高级用户组并继续前进,没有问题.这是一个不相关的问题,我后来发现"超级用户"不再拥有Vista以外的任何权限,让我回到同一篇文章:
幸运的是,考虑到这些替代方案,事实证明更新性能计数器所需的权限集比作为管理员或高级用户运行要小得多.在注册表项HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib中,设置访问控制列表,以便必要的用户具有完全控制权.在我们的原始示例中,ASPNET用户将被授予完全控制权,但是可以向需要更新性能计数器的任何人授予访问权限.
但即使这样也不是真的,因为我现在已经退回并从高级用户组中删除了我的测试用户,而我的应用程序仍然没有问题地递增计数器.
此外,似乎如果有权限设置,它将在HKLM\System\CurrentControlSet\services \下的单个计数器上.
我完全承认我的代码可能存在其他问题导致我的原始权限问题.但是,我需要将这一部分一直部署回XP,因此确认上述内容是否只是日期信息或完全不正确对我来说非常重要.我很快就会自己确认这一点,但如果有人能够验证信息或指向我具体的文档,那将会很好.
在Visual Studio 2017中构建期间,我经常收到以下内容:
1>------ Build started: Project: Library, Configuration: Debug Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error MSB3883: Unexpected exception:
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : System.IO.FileNotFoundException: Could not load file or assembly 'System.Security.Principal.Windows, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : File name: 'System.Security.Principal.Windows, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): error : at Microsoft.CodeAnalysis.CommandLine.BuildServerConnection.GetPipeNameForPathOpt(String compilerExeDirectory)
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets(84,5): …Run Code Online (Sandbox Code Playgroud) 如果 Query 方法未能找到与结果集中返回的列匹配的属性,是否可以选择让 dapper 抛出错误?例如:
public class Person{
public String FirstName {get; set;}
public String LastName {get; set;}
}
...
conn.Query<Person>("select FName, LName from Users");
Run Code Online (Sandbox Code Playgroud)
尽管由于名称不匹配而没有传输数据,但上述内容不会引发任何错误。
如果没有,是否有理由不添加它?我旧的本土微 ORM 做到了这一点,我错过了这个功能,所以我会考虑尝试添加它,但如果有特定的设计决策已经消除了它(即“原始性能”),则不会。
linqpad 的自动恢复文件在哪里保存?我丢失了一些查询,并且像 SSMS 一样,我希望文件仍然存在,但是当我启动 linqpad 时,由于某种原因,自动恢复只是没有将它们拉起来。
或者,linqpad 是否编译到临时位置?我可以通过反编译查询来恢复我的工作。
我有一个程序冻结(特别是sql开发人员),里面有一些未保存的文件.我使用sysinternal的进程资源管理器在终止进程之前创建转储文件.我真的只失去了几个小时的工作,但我认为看看我可以从转储文件中提取的内容是一个很好的学习经验.到目前为止,我已经下载并运行了windbg并找到了我的文本:
s -u 0x00000000 L?0xffffffff "text I know exists in my file"
Run Code Online (Sandbox Code Playgroud)
从那里我得到了相关的内存地址,可以查看内存窗口中的文本以及大部分文件.但是,从这里我有点卡住了.我知道我可以使用du命令来转储文本,但我应该使用什么样的策略来确定开始和结束范围.这是一个1千兆转储所以我永远不会将0x00000000转储到0xffffffff,因为我没有大多数编辑器可以打开的文本文件.有没有办法只是转储用户内存或非代码内存等?它无论如何都不一定是完美的.我满足于只在文本板中打开转储文件,但是unicode数据没有显示,只显示了ascii(可能是因为textpad无法检测到类型或因为它是64位转储).
我正在使用Bogus生成测试数据。
有没有办法设置它使用的种子,以便它以相同的顺序生成相同的测试数据?
例如,此测试将失败:
var person1 = new Bogus.Person();
var person2 = new Bogus.Person();
Assert.AreEqual(person1.FullName, person2.FullName);
Run Code Online (Sandbox Code Playgroud)
但是,有没有办法重置种子,使其不会,即:
Bogus.Config.SetSeed(1);
var person1 = new Bogus.Person();
Bogus.Config.SetSeed(1);
var person2 = new Bogus.Person();
Assert.AreEqual(person1.FullName, person2.FullName);
Run Code Online (Sandbox Code Playgroud) 安装 Visual Studio 2017 Professional 15.9.0 时,安装在安装 Microsoft.VisualStudio.AspNet45.Feature 时挂起于 97%。
我发布此内容只是因为这似乎是一个近两年的问题,而且仍然是一个问题。
大多数人表示该问题已在后续版本中得到解决,但事实似乎并非如此。我让这个过程运行了一整夜,但它却没有任何进展。
我这样做了:
var f = new Faker();
String.Join("", f.Random.Digits(10)
Run Code Online (Sandbox Code Playgroud)
但是,是否有另一种方法可以消除“加入”调用?