【发布时间】:2016-07-08 18:45:10
【问题描述】:
我有这个应用程序,它可以在本地计算机和 Windows Phone 设备上以调试模式成功构建和运行,在尝试使用发布模式时,我收到以下 3 个错误:
错误 内部编译器错误:出现一个或多个错误。
非泛型类型“PInvoke.NTSTATUS.Code__PInvoke_Windows_Core” 不能与类型参数一起使用 ...obj\x64\Release\ilc\intermediate\Liberte.Windows.Interop\SafeTypes.g.cs 333
找不到类型或命名空间名称“值”(您是否缺少 using 指令或程序集 参考?)...obj\x64\Release\ilc\intermediate\Liberte.Windows.Interop\SafeTypes.g.cs 333
检测到最后两个错误的实际代码是一个名为SafeTypes.g.cs 的文件下的自动生成代码,并且引发错误的行是:
namespace PInvoke
{
[global::System.Runtime.InteropServices.McgRedirectedType("PInvoke.NTSTATUS,PInvoke.Windows.Core, Version=0.1.0.0, Culture=neutral, PublicKeyToken=9e300f9f87f04a7a")]
public unsafe partial struct NTSTATUS__PInvoke_Windows_Core
{
public global::PInvoke.NTSTATUS.Code__PInvoke_Windows_Core <Value>k__BackingField;
}
}
我不知道这是什么意思,我应该怎么做,对此有任何解释和解决方案?
更新:
试图关闭VS,然后删除Obj和Bin内容,再次重建,但仍然有同样的错误。
我应该提一下,也许我参考了其他 2 个项目,其中一个是使用 PCLCrypto 库的 PCL 项目,另一个是使用 EntityFramework 7 pre-release with sqlight 的通用应用程序库。
更新 2:
我试图禁用 .Net native 的编译只是为了看看发生了什么,发布构建成功,但应用程序在启动后崩溃并退出。
更新 3:
我刚刚发现我在我引用的两个项目之一中使用的 PCLCrypto 库引用了两个导致问题的库,并且在上面的错误中提到了它们,我在尝试时发现了这一点卸载库,看看是否是问题的原因:
我尝试回滚到以前的稳定版本,在调试模式下编译,一切正常,当我再次尝试使用 .Net native 发布模式时,我遇到了一个新的problem:Out of memory。
【问题讨论】:
-
你应该尝试关闭VS,删除项目根目录下的/obj和/bin文件夹,然后重建解决方案
-
@new01bie : 谢谢你的回答,请查看我的更新
-
您在发布模式下使用 .Net Native 吗?如果“是” - 尝试删除它(在主项目的属性中)并再次尝试。
-
@NikitaBondarenko 感谢您的评论,我刚刚尝试过,构建成功,但该应用程序在启动后崩溃,知道吗??
-
是同一个异常还是另一个?输出窗口中的任何错误?你说“应用程序在启动后崩溃并退出” - 之后是什么?在 App.cs 中的构造函数之后或导航到第一个(主)页面之后?
标签: c# build visual-studio-2015 win-universal-app release