【c# – 为什么.NET版本是一个类而不是结构?】教程文章相关的互联网学习教程文章

c# – 我可以在构建.net程序集时指定模块版本ID(MVID)吗?

我们有一些共享程序集,每晚都会自动构建.如果没有对源进行任何更改,我希望程序集二进制文件与先前版本完全相同. 但是,程序集之间似乎存在细微差别. 我已经做了一些努力来确定两个版本之间的区别.我使用ildasm生成il版本,并比较生成的文本版本.唯一的区别(在IL中)是模块中的MVID(随机guid). 一些谷歌搜索告诉我模块版本ID由编译器生成,因此可以确定构建源,即使其他所有内容都相同. 此MVID在相同代码的构建之间创建人工差异,并对所得...

c# – LINQ是否会根据输入类型使用专用/优化版本的函数?【代码】

如果我使用LINQ执行以下操作:void DoSomeStuffWithHashSet() {HashSet<int> set = new HashSet<int>();for (int i = 0; i < 100; ++i) set.Add(i);if (Lookup(set, new Random().NextInt(200))System.Console.WriteLine("Yey");elseSystem.Console.WriteLine("Ney"); }bool Lookup(IEnumerable<int> haystack, int needle) {// O(N) search or HashSet<int>.Contains()?return Enumerable.Contains(collection, needle); }将Enume...

c# – String.IndexOf的IList版本(查找子字符串’,而不仅仅是单个对象)【代码】

我正在寻找List< T> .IndexOf(List< T>)的实现.我只在.NET类库中找到了List<< T> .IndexOf(T). 我有一个List longList和一个List possibleSubList.我想知道是否可以在longList中找到可能的子列表作为子串,如果是,则将索引转换为longList. 这与System.String.IndexOf基本相同.任何人都知道该怎么称呼它或者它是否有良好的实现? 伪代码示例: {1,2,3,9,8,7} .IndexOf({3,9,8})= 2 {1,2,3,9,8,7} .IndexOf({1,2,3,9,8,7})= 0 ...

c# – 如何强制Visual Studio使用特定版本的DNX【代码】

我正在搞乱dnvm,我运行了dnvm升级,让我进入beta5.但是,我正在研究的项目是beta4(至少目前为止). 我一直试图恢复和失败.我已经删除了运行时文件夹.现在,当我打开项目或尝试创建一个新项目时,我收到以下错误: 这是预期的,因为我删除了该文件夹.但是,我想使用dnx-clr-beta4.我的dnvm列表如下: 我需要做些什么才能使Visual Studio代替beta4?感谢您的时间.解决方法:将DNX版本放在global.json文件中,该文件位于解决方案的根目录中(如h...

截断版本号C#【代码】

如果我的版本号有5位数字,例如“1.0.420.50.0”,我怎么能把这个号码(和其他版本号码如“1.0.512.500.0”)截断为4位数? “1.0.420.50.0” – > “1.0.420.50” 我更喜欢使用数组,但任何其他方法也可以使用!在此先感谢您的任何建议!解决方法:我有一段时间没有用c#编程,所以语法可能会关闭.如果版本控制可能超过六位数,您将不需要依赖于删除最后一位数的方法.而只需采用前四个版本号.String version = "1.0.420.50.0"; String [] v...

正确的方法来添加对C#项目的引用,使它们与版本控制兼容

将第三方库或内部开发的库添加到C#项目时,我通常只是在Visual Studio解决方案浏览器中添加引用.但是,这会创建对库的绝对路径引用.当另一台计算机上的另一位开发人员签出代码时,他们可能不会在这些确切的文件夹位置中拥有这些库. Where do you put your 3rd party libraries?建议第三方库应保存在解决方案文件夹(即存储库文件夹)内的文件夹中.这对我来说很有意义.但是,当我添加引用时,它们仍然是绝对路径引用. Changing C# .dll ref...

c# – Newtonsoft.Json版本8.0.2无法加载文件或程序集错误【代码】

我正在尝试在Web API解决方案中解析类库中的JSON文件.它是一个普通的C#类库,而不是Portable类. 我已经尝试了每一个答案mentioned here,但它仍然无效!我一直得到同样的错误:Could not load file or assembly ‘Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Excepti...

c# – 为什么.NET版本是一个类而不是结构?【代码】

根据ReferenceSource,Version类是密封的,ICloneable,IComparable,IComparable< Version>,IEquatable< Version>.它也只存储int值.是不是有一个特殊原因让.NET程序员选择将它变成一个类而不是结构?为什么有人需要一个空版本? 这是ReferenceSource的字段声明块:// AssemblyName depends on the order staying the same private int _Major; private int _Minor; private int _Build = -1; private int _Revision = -1;他们甚至发表...

c# – Exchange Server不支持所请求的版本【代码】

我得到此错误,因为FindItemsResult与我使用的交换版本不兼容,这是2013年.Exchange Server doesn't support the requested version.我的代码:SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));FindItemsResults<Item> items = service.FindItems(WellKnownFolderName.Inbox, sf, new ItemView(10));foreach (Item item in items.I...

c# – Debug.WriteLine()参数表达式评估副作用是否在发布版本中发生?【代码】

根据this问题接受的答案:When the application is compiled in the release configuration, the Debug elements will not be compiled into the code.Debug.WriteLine()(和类似的)的参数表达式评估副作用是否在发布版本中发生?我不确定“调试元素”究竟意味着什么.解决方法:这很容易尝试自己:class Program {static void Main(string[] args) {int i = 0;Debug.WriteLine(i++);Console.WriteLine(i);Console.ReadLine();} }在调...

c# – 如何在Visual Studio 2008部署项目中获取项目的汇编版本【代码】

我在visual studio 2008中有一个部署项目,它安装了几个C#项目.除其他外,我希望它将项目汇编版本写入注册表. 有没有办法自动找出项目汇编版本(用AssemblyInfo.cs编写)并将其写为注册表属性的值? 如果没有,有没有办法比手工更好地做到这一点?重要的是这些值是正确的,因为我们的更新软件使用它们. 谢谢. 编辑:我不确定我的问题是否完全清楚.我不想得到这个数字并将其存储到字符串中.我想用Deployment Projects注册表编辑器将它写入...

c# – 在winforms中获取最大化版本的窗口大小【代码】

如何在不最大化的情况下获得最大化窗口状态中表单的大小? 我正在做一个地图控件的快照.我想在执行快照时最大化窗口,但没有用户注意到.似乎表单窗口状态在隐藏时不会更改表单大小:this.Hide(); this.WindowState = FormWindowState.Maximized; // Snapshot but this.Size didn't change this.WindowState = FormWindowState.Normal; this.Show();不隐藏时工作正常. 所以我试图手动设置大小但需要知道最大化的状态宽度和高度:// x...

c# – 由于.net版本不同而导致错误?【代码】

class Program {static string path = "C:\\Work\\6.70_Extensions\\NightlyBuild\\";static void Main(string[] args){var di = new DirectoryInfo("C:\\Work\\6.70_Extensions\\NightlyBuild");foreach (var file in di.GetFiles("*", SearchOption.AllDirectories))file.Attributes &= ~FileAttributes.ReadOnly;var files = Directory.GetDirectories(path, "SASE Lab Tools.*");foreach(var file in files)Console.WriteLine(...

c# – BinaryFormatter忽略汇编版本【代码】

我有以下方法来生成对象的哈希.它的效果非常好!但是当我更改程序集的版本时,即使对象相同,哈希也会发生变化.public static string GetHash(Object item) {MemoryStream memoryStream = new MemoryStream();BinaryFormatter binaryFormatter = new BinaryFormatter();binaryFormatter.Serialize(memoryStream, item);binaryFormatter.AssemblyFormat = FormatterAssemblyStyle.Simple;HashAlgorithm hashAlgorithm = new MD5Crypto...

c# – 如何不引用程序集的特定版本?

我有一个Visual Studio 2010项目,我引用了一个指向本地版本的程序集Oracle.DataAccess.dll. 我已经明确地将选项“Specific Version”设置为false但是在构建应用程序时我已经检查了应用程序程序集并且它具有对 Oracle.DataAccess,Version = 2.112.3.0,Culture = neutral,PublicKeyToken = 89b483f429c47342 如何引用特定版本的程序集? 我想依赖bin文件夹中可用的版本. 它目前显然取决于应用程序的构建位置.如果我在安装了不同版本O...