【C#使用“发布”选项进行编译】教程文章相关的互联网学习教程文章

c# – 如何编译.NET应用程序以进行CPU优化?

我有一个.NET C#应用程序,只能在一台具有已知配置的计算机上运行(如果这很重要,请运行HP DL120 G7,Xeon E3-1220,Windows Server 2008 R2 Foundation).我不需要在其他计算机上运行此应用程序. 我想要: >尽可能快地制作(即可能使用“使用Xeon E3-1220”键或其他东西进行编译?)>保护它一点(从二进制文件恢复C#源代码不应该是微不足道的). 我应该以某种方式编译为本机Windows代码吗?可能我应该使用一些特殊的编译器选项?解决方法:您...

【转】C#反编译工具

源地址:https://blog.csdn.net/kongwei521/article/details/54927689 源地址:https://www.cnblogs.com/JamesLi2015/archive/2011/09/08/2170519.html

c# – 具体来说,编译器如何积极优化生成的字节码?【代码】

我一直在阅读各种编译器的功能,并且我遇到了许多编译器报告执行的“积极优化”一词.例如,LLVM引用了以下编译时优化功能: >内存/指针特定>循环变换>数据流>算术>死代码消除>内联 具体是什么意思?假设您有以下代码片段,如何优化生成的字节代码以比编译器生成的更快地运行?我特别感兴趣的是优化JIT驱动的运行时的字节码,例如C#,Java和Flash.这很棘手,因为JIT只支持处理器通常执行的操作码的子集,这限制了您可以执行的优化量.尽管如...

使用Roslyn处理C#脚本时的编译错误【代码】

我使用Roslyn将C#脚本引擎嵌入到我的应用程序中,到目前为止,我可以毫无问题地执行代码.我可以举例来说,执行以下代码:using System; var str = "Hello Roslyn"; Console.WriteLine(str);在上面的代码片段中构建语法树时,我遇到了编译问题.编译器抱怨直接嵌入到主命名空间中的语句,这在编写普通的C#程序时是有意义的,但在我的情况下并不是这样,因为我采用的是脚本方式. 题:有没有办法从C#脚本中构建无错误的语法树? 编辑这是我用来...

c# – 当我将源代码编译到.net框架中的exe文件时会发生什么

将.NET源代码(c#或vb)编译为.exe文件时会发生什么?我希望了解在制作exe文件时发生的过程,并查看了有关逆向工程和反编译的几个问题(例如,How do I decompile a .NET EXE into readable C# source code?和What happens when user click .NET assembly (EXE)?) 提前致谢解决方法:托管执行过程包括以下步骤 >选择编译器To obtain the benefits provided by the common language runtime, you must use one or more language compilers...

c# – “是”运算符编译时警告【代码】

从reference:The is keyword causes a compile-time warning if the expression isknown to always be true.我试图创建一个例子:class MyClass {public void method(MyClass c){if (c is MyClass){//...}if (c is Object){//...}} }但我没有得到任何警告.为什么? 有人能告诉我一个例子,我得到一个警告(因为表达式总是如此)? 它适用于虚假.解决方法:如果值为null,则is运算符将返回false,因此如果调用method(null),则不会输入if-...

使用Roslyn(csc.exe)定位.NET 3.5时手动编译C#【代码】

我正在使用csc / csc2.exe手动编译应用程序.我需要引用.NET 3.5 dll,但似乎编译器自动添加了.NET 4.0 dll(导致冲突). 我手动引用了所需的mscorlib版本和其他系统dll. Visual Studio中的编译成功,但是从命令提示符手动编译同一响应文件失败./nostdlib+ /platform:AnyCPU /errorendlocation /highentropyva- /reference:"C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference...

c# – 使用ImmutableList(仅发布模式)在UWP上反编译JSON.NET的问题【代码】

我遇到了这些令人烦恼和奇怪的行为之一,它们在调试和发布模式之间有所不同.因此,我们使用JSON.NET 7.0.1在UWP 10.0.10586上 我有一个看起来像这样的模型类:[JsonObject] public class RootObject {[JsonProperty]public Profile ProfileInfo { get; set; } = new Profile();[JsonProperty]public ImmutableList<Info> AdditionalInfo { get; set; } = ImmutableList.Create<Info>(); }然后我尝试反序列化json:var rootObject = J...

c# – 扩展方法调用不编译,但静态方法调用相同的代码编译【代码】

库A调用库B使用C#扩展方法. 我从C#编译器得到了一个奇怪的错误:The type ‘System.Windows.Forms.Control’ is defined in an assembly thatis not referenced. You must add a reference to assembly‘System.Windows.Forms, Version=4.0.0.0库A或B都不依赖于System.Windows.Forms.Control,也没有任何依赖于System.Windows.Forms.Control的依赖关系. System.Windows.Forms.Control仅从同一解决方案中的另一个项目引用. 奇怪的是,...

c# – Visual Studio 2017 RC Core Console Project无法编译【代码】

当我创建一个新的enoty核心控制台项目时,它不会编译 我可以看到nuget包没有恢复.当我运行dotnet恢复我得到错误microsoft.net.sdk\1.0.0-alpha-20161104-2\build\Microsoft.NET.RuntimeIdentifierInference.targets(45,5):error : RuntimeIdentifier must be set for .NETFramework executables.Consider RuntimeIdentifier=win7-x86 or RuntimeIdentifier=win7-x64.我错过了什么?解决方法:正如@annemartijn所建议的那样,但是没有s...

C#Mono on mac – 使用代码编译并运行另一个项目【代码】

我正在尝试构建一个自动下载,编译和放大为项目运行程序只是为了让mac和我自己的其他用户更容易,所以我们不必随着项目的进展一遍又一遍地做所有事情.当我谷歌时,我无法找到任何关于如何使用代码编译和运行C#monodevelop项目的内容.这里有谁知道怎么做? 谢谢 编辑:使用下面提到的xbuild编译项目,但我似乎无法找到运行构建的命令?唯一的输出似乎是.exe并且当我尝试运行时启动vmware,是否有som命令我添加到某处?喜欢执行tar -xf so...

c# – 为什么Task.Factory.StartNew()没有为await抛出编译器警告?【代码】

在visual studio 2012和(我假设)之外,对未等待的异步功能的调用会产生警告,即public static async Task FunctionAsync() {await Task.Delay(10); }public static void SyncCaller() {FunctionAsync(); }SyncCaller唯一的代码行将显示编译器警告:“由于不等待此调用,因此当前方法在调用完成之前继续运行.” 但是,如果我重写SyncCaller():public static void SyncCaller() {Task.Factory.StartNew(() => { }); }没有这样的警告,但...

c# – 如果在代码中的任何地方使用特定的外部函数,则在编译时抛出错误?【代码】

我正在使用外部库,我想确保我从不在库中调用某些特定的函数.我没有该库的源代码所以我想确保在编译时如果我偶然(或我的一个开发人员)使用该函数,它会抛出错误.有没有办法做到这一点?解决方法:你不能轻易做到这一点.您可以将方法标记为过时,但当然需要访问外部库源代码,此时您也可以删除方法. 我能想到的最好的事情是围绕库对象构建一个外观:public class LibraryFacade {//All the library methods as pass-through methods//Exc...

c# – 将int.MaxValue赋值给变量时编译器的响应方式不同【代码】

参见英文答案 > Why does int32.maxvalue + 1 overflow a long? 5个根据documentation int.MaxValue是一个int字段.当我做int a = int.MaxValue; int b = a + 1;b具有预期的int.MinValue值.但是,当我这样做int a = int.MaxValue + 1;我收到编译错误The operation overflows at compile time in checked mode为什么会有区别?解决方法:从https://msdn.microsoft.com/en-us/library/aa691319(v=vs...

c# – 如何根据第一个cake文件编译成功逐个运行两个cake文件?【代码】

我想运行我的源代码编译source.cake文件然后编译Build.cake文件但是如果source.cake文件有失败我不应该启动Build.cake.那么如何传递soruce.cake文件值的编译状态来构建.蛋糕 ? 这可能是蛋糕吗?解决方法:是的,有几种方法可以在Windows命令行或Bash下运行,只需使用&&像这样的操作符:cake source.cake && cake build.cake如果您正在运行PowerShell,则可以执行以下操作cake .\source.cake;if($LASTEXITCODE -eq 0) { cake .\build.c...