在发布模式下构建 uwp 应用程序时出错
Error when building uwp app in Release mode
我有这个应用程序,它在我的本地计算机和我的 Windows Phone 设备上以调试模式成功构建和运行,尝试使用发布模式时,我得到了这 3 个错误:
Error Internal compiler error: One or more errors occurred.
The non-generic type 'PInvoke.NTSTATUS.Code__PInvoke_Windows_Core'
cannot be used with type arguments
...obj\x64\Release\ilc\intermediate\Liberte.Windows.Interop\SafeTypes.g.cs 333
The type or namespace name 'Value' could not be found (are you missing
a using directive or an assembly
reference?) ...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 个项目,其中一个是使用 PCL 加密库的 PCL 项目,另一个是使用 PCL 加密库的通用应用程序库EntityFramework 7 预发布与 sqlight。
更新二:
我尝试禁用 .Net native 编译只是为了看看发生了什么,发布构建成功,但应用程序在启动后崩溃并退出。
更新 3:
我刚刚发现我在引用的两个项目之一中使用的 PCLCrypto
库引用了导致问题的两个库,并且在上面的错误中提到了它们,我发现这是在尝试卸载库以查看它是否是问题的原因时解决的:
我试图回滚到以前的稳定版本,在 Debug 模式下编译,一切正常,当我再次尝试使用 .Net native 的 Release 模式时,我遇到了一个新的 problem :Out of memory
.
我有这个应用程序,它在我的本地计算机和我的 Windows Phone 设备上以调试模式成功构建和运行,尝试使用发布模式时,我得到了这 3 个错误:
Error Internal compiler error: One or more errors occurred.
The non-generic type 'PInvoke.NTSTATUS.Code__PInvoke_Windows_Core' cannot be used with type arguments ...obj\x64\Release\ilc\intermediate\Liberte.Windows.Interop\SafeTypes.g.cs 333
The type or namespace name 'Value' could not be found (are you missing a using directive or an assembly reference?) ...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 个项目,其中一个是使用 PCL 加密库的 PCL 项目,另一个是使用 PCL 加密库的通用应用程序库EntityFramework 7 预发布与 sqlight。
更新二:
我尝试禁用 .Net native 编译只是为了看看发生了什么,发布构建成功,但应用程序在启动后崩溃并退出。
更新 3:
我刚刚发现我在引用的两个项目之一中使用的 PCLCrypto
库引用了导致问题的两个库,并且在上面的错误中提到了它们,我发现这是在尝试卸载库以查看它是否是问题的原因时解决的:
我试图回滚到以前的稳定版本,在 Debug 模式下编译,一切正常,当我再次尝试使用 .Net native 的 Release 模式时,我遇到了一个新的 problem :Out of memory
.