Tag: visual studio

生成(通过T4)文件构建操作将重置为Build

我们在Visual Studio 2013中有一个数据库项目。在这个项目中,我们有一个生成.sql脚本的.tt文件。 问题是在生成之后,生成的文件的构建操作自动设置为Build。 如果我们手动将其更改为None,则会在重新生成(运行自定义工具)后重置为Build。 另一个奇怪的事情是,只有.tt文件位于数据库项目和该项目的某个文件夹中(不在root中)才会发生。 如果.tt文件位于另一个项目(任何地方)或数据库项目的根目录中,则生成文件的构建操作在重新生成后不会更改。 我们没有任何Visual Studio加载项,我尝试禁用可以禁用的所有扩展和更新。 如果需要,我会给你任何细节。

VS2008安装项目:卸载以前的MSI

我有一个VS2008安装项目,它创建一个安装WinForms应用程序(C#)的setup.msi。 每次更新版本号时,用户首先必须卸载以前的版本才能安装新版本。 否则我们得到可怕的“此产品的另一个版本已安装”消息。 这是我在构建新版本安装程序时已经在做的事情: 设置RemovePreviousVersions = true和DetectNewerInstalledVersion = true 增加AssemblyVersion (正在部署的exe) 增量版本 (安装项目) 生成一个新的ProductCode (当VS更改时,由VS提示) 保持UpgradeCode不变 然而它仍然拒绝卸载以前的版本。 那么,我错过了什么? 或者我做错了什么? 谢谢!

C#编译器优化

我想知道是否有人可以向我解释一下编译器可能正在做些什么来观察一个简单方法的性能差异。 public static uint CalculateCheckSum(string str) { char[] charArray = str.ToCharArray(); uint checkSum = 0; foreach (char c in charArray) { checkSum += c; } return checkSum % 256; } 我正在与一位同事一起为消息处理应用程序做一些基准测试/优化。 在Visual Studio 2012中使用相同的输入字符串执行此function的1000万次迭代大约需要25秒,但是当使用“优化代码”选项构建项目时,在相同的1000万次迭代中,在7秒内执行相同的代码。 我非常有兴趣了解编译器在幕后做了什么,以便能够看到像这样看似无辜的代码块的性能提升超过3倍。 根据要求,这是一个完整的控制台应用程序,演示了我所看到的。 class Program { public static uint CalculateCheckSum(string str) { char[] charArray = str.ToCharArray(); uint checkSum = 0; foreach (char […]

在Visual Studio for C#中从流畅的接口类intellisense隐藏GetHashCode / Equals / ToString?

我有一个流畅的IoC容器注册过程接口,其中包含一些用于构建注册的类。 例如,我可以这样做: builder.Register().From.ConcreteType(); 但是,在点之后的每个步骤中,会弹出intellisense,显示Object类,GetHashCode,Equals,GetType和ToString中的四种标准方法。 我尝试在几个类中重写这些方法,将EditorBrowsableAttribute属性附加到每个类,但它们仍然显示。 我没办法隐藏它们吗? 请注意,我不是试图将它们隐藏在类本身之外,只是来自intellisense。 基本上,我喜欢这个: +—————+ builder.Register().|As | |By | |Equals | <– remove this |From | |GetHashCode | <– and this |GetType | <– as well as this |ToString | <– and finally this +—————+ 这是我在Register返回的类中尝试的: [EditorBrowsable(EditorBrowsableState.Never)] public override Boolean Equals(Object obj) { return base.Equals(obj); } [EditorBrowsable(EditorBrowsableState.Never)] public override Int32 GetHashCode() […]

在C#中inheritance文档?

从Java和Eclipse开始,我习惯使用@inheritDoc ,它允许使用与基类/方法相同的文档。 如何在C#和Visual Studio 2010中完成类似的操作?

代码合同+代码分析

我想在我的代码库中开始使用代码约定 。 我已经使用了代码分析,启用了所有规则,并且目标是零警告。 但是,当使用Contract.Requires(parameter != null)我收到代码分析的警告,即CA1062: CA1062:Microsoft.Design:在外部可见方法’Foo’中,在使用之前validation参数’parameter’。 这很不幸,我不想禁用该规则,因为我发现它很有用。 但我也不想压制它的每一个错误发生。 有解决方案吗?

为什么Request ==“dev.testhost.com:1234”而Request.Url.Host ==“localhost”

大家好,我似乎发现在使用Visual Studio 2008(Cassini)在内置Web服务器上本地测试ASP.NET应用程序时存在差异。 我在我的本地机器上设置了一个主机,将dev.testhost.com与127.0.0.1相关联,因为我有一个应用程序需要根据用来调用它的主机头来改变它的外观。 但是,当我使用http://dev.testhost.com:1234/index.aspx请求我的测试应用程序时, Request.Url.Host的值始终是”localhost” 。 而Request.Headers[“host”]是”dev.testhost.com:1234″ (正如我所期望的那样)。 我并不担心第二个值包含端口号,但是我很惊讶为什么HOST NAMES完全不同 ! 有谁知道这是一个已知的问题,还是设计? 还是我是个白痴?! 我宁愿使用Request.Url.Host ,因为这样可以避免在测试时 删除 端口号… – 由于可能导致混淆而删除! – 山姆

如何修复无法加载文件或程序集’nunit.engine,Version = 3.7.0.0

我有一个使用NUnit运行unit testing的单独测试项目的webappliction。 当我的测试项目试图发现测试时,我遇到以下exception: An exception occurred while test discoverer ‘NUnit3TestDiscoverer’ was loading tests. Exception: Could not load file or assembly ‘nunit.engine, Version=3.7.0.0, Culture=neutral, PublicKeyToken=2638cd05610744eb’ or one of its dependencies. The system cannot find the file specified. 这当然是一个非常常见的错误,但我无法在任何地方找到对此特定程序集的引用,或者其他依赖项实际导致该问题。 另一件事是我目前安装了3.9.0 NUnit而不是上面提到的3.7.0 。 我已经尝试清理和重建解决方案并恢复所有Nuget包并清除obj目录也没有帮助。

如何限制构建仅支持EN“Microsoft.Expression.Interactions.resources.dll”,并避免使用DE,KR,FR,ES等…?

当我构建我的WPF项目时,它会创建几个语言文件夹,每个文件夹包含“Microsoft.Expression.Interactions.resources.dll”。 奇怪的是,我从未创建过我的资源字符串到其他语言的翻译,但它仍然创建了DE,KR,FR,ES文件夹。 我只需要EN。 如何将本地化限制为EN?

如何有不同的解决方案参考一个resx文件?

我有一个resx文件,我想从几个解决方案\项目中使用它,我不想在每个解决方案中都有本地副本(仅在编译时带来一个副本)。 有办法吗? 因为当我将其添加为“添加现有文件”时,它会在本地复制一份副本。 知道怎么做吗?