Tag: 编译器构造

相同类型的Object的InvalidCastException – 自定义控件加载

我有一个非常有线的错误,我的一个自定义控件似乎是创建两个编译文件,当我尝试使用LoadControl()动态加载它时只是失败,因为无法将一个转换为另一个 – 即使它们正是相同。 我写的消息看到的一切都是一样的,只是改变了编译过的dll。 System.Web.HttpUnhandledException (0x80004005): Exception of type ‘System.Web.HttpUnhandledException’ was thrown. —> System.InvalidCastException: [A]ASP.Modules_OneProduct_MedioumImage cannot be cast to [B]ASP.Modules_OneProduct_MedioumImage. Type A originates from ‘App_Web_kg4bazz1, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ in the context ‘Default’ at location ‘C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\80ed7513\10eb08d9\App_Web_kg4bazz1.dll’. Type B originates from ‘App_Web_oneproduct_mediumimage.ascx.d1003923.4xoxco7b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null’ in the context ‘Default’ at location ‘C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\80ed7513\10eb08d9\App_Web_oneproduct_mediumimage.ascx.d1003923.4xoxco7b.dll’. 代码 […]

获取“源文件与模块构建时不同。”

我正在尝试调试我收到的ASP.Net Web项目。 我修改了”Apps_LocalResources”文件夹中的一个类。 当我调试并且代码试图进入该类时,我得到了 “源文件与模块构建时不同。” 我重建了解决方案并没有得到任何改变。 我甚至将它发布到不同的位置,bin文件夹中的pdb和dll没有改变,所以我没有复制它们。 想法?

在C#中优化代码是否存在风险?

在VS2010 Pro的构建设置面板中,有一个标签为“优化代码”的CheckBox ……当然,我想检查一下……但是要非常谨慎,我问我的兄弟,并且他说它未经检查以进行调试,并且在C ++中它可能会做一些会破坏或破坏代码的事情……但他不了解C#。 所以我的问题是,我可以在此框中查看我的发布版本而不必担心它会破坏我的代码吗? 第二,如果它可以破坏代码,何时以及为什么? 链接到解释欢迎。

是否有任何程序混淆C#源代码?

我们的要求是能够将我们的DLL与ClickOnce集成。 Dotfuscator可以很好地完成混淆工作,但是无法在客户端使用ClickOnce部署混淆的DLL。 在我们这边,我们可以完美地处理它。 此外,混淆的程序集有时会崩溃我们的.NET CF应用程序。 事实certificate,这是一种创建临时源并在使用VS编译之前对其进行模糊处理的解决方案。 这可确保已编译的程序集可与ClickOnce集成,并与.NET CF完全兼容。 什么是混淆C#SOURCE CODE(不是程序集)的最佳工具?

什么是/ optimize C#编译器密钥用于什么?

是否有/ optimize C#编译器密钥可以在任何地方完成的完整优化列表? 编辑: 为什么默认禁用? 是否值得在真实世界的应用程序中使用? – 默认情况下仅在“调试”配置中禁用,在“释放”中启用。

评论编译成.net中的.exe?

我知道你可以使用.netreflection器来查看用.net创建的代码,但是如果我在评论中添加一些内容,我自己的个人提醒也是在exe中编译的。 我不打算发布我的应用程序的源代码,我知道100%安全的赌注是删除我不想要的所有内容,但我只是想知道是否有人可以对我的评论进行反向工程。

虚拟事件如何在C#中运行?

以下是我用于测试的程序。 它打印(如预期): Raise A Event from A Raise B Event from B 现在,如果我们改变Main的前两行是: A a = new B(); B b = new B(); 该计划将打印: Raise A Raise B Event from B 这也是预期的,因为重写事件会隐藏基类中的私有支持字段,因此基类触发的事件对派生类的客户端不可见。 现在我将相同的行改为: B b = new B(); A a = b; 程序开始打印: Raise A Raise B Event from A Event from B 这是怎么回事? class […]

为什么我不能将数组初始值设定项与隐式类型变量一起使用?

为什么我不能将数组初始值设定项与隐式类型变量一起使用? string[] words = { “apple”, “strawberry”, “grape” }; // legal string[] words = new string[]{ “apple”, “strawberry”, “grape” }; // legal var words = new []{ “apple”, “strawberry”, “grape” }; // legal var words = new string[]{ “apple”, “strawberry”, “grape” }; // legal var words = { “apple”, “strawberry”, “grape”, “peach” }; // ILLEGAL […]

为什么C#为相同的源代码生成不同的EXE?

每次我们重新编译C#应用程序时,我们都会得到具有不同MD5签名的EXE。 我们在相同的机器上重新编译,相隔几分钟。 为什么相同的源代码不会产生相同的输出? 有没有办法来解决这个问题?

条件运算符会混淆,但为什么呢?

假设有两个类,都是同一个超类的后代,如下所示: class MySuperClass{} class A : MySuperClass{} class B : MySuperClass{} 然后这个赋值不会通过编译器: MySuperClass p = myCondition ? new A() : new B(); 编译器抱怨A和B不兼容( 无法确定条件表达式的类型,因为’A’和’B’之间没有隐式转换 [CS0173])。 但它们都是MySuperClass类型,所以在我看来这应该有效。 这不是一件大事; 只需要一个简单的强制转换即可启发编译器。 但肯定这是C#编译器的一个障碍? 你不同意吗?