Microsoft Band SDK Deploy Error: To ARM in Release: Raw error code: 2148733978
Microsoft Band SDK Deploy Error: To ARM in Release: Raw error code: 2148733978
尝试使用 Microsoft Band SDK 部署应用程序时出现以下错误。构建配置为 RELEASE,目标输出为 ARM。如果使用 DEBUG 配置,它可以工作。
Error : DEP6810 : MdilXapCompile.exe failed with error code 2001.
我检查了 MDILXapCompileLog,下面是编译失败的地方:
CrossGen failed
Error processing assembly [projectpath]...\obj\ARM\Release\MSIL\Microsoft.Band.dll
Raw error code: 2148733978
注意:关于这种情况的额外奇怪部分是,如果我只打包应用程序而不部署,我可以将它侧载到设备上,它会按预期工作。
这是 csproj 部分 - Debug/ARM:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_PHONE_APP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
Release/ARM
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_PHONE_APP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
我看到的唯一区别是调试符号,Microsoft.Band.dll 可以没有 public 符号吗?难道 Visual Studio 不应该创建它们吗?
我注意到即使更新到较新的 SDK,该解决方案仍然有旧的 Band SDK - Preview 包。我手动删除了所有 nuget 项目,强制刷新包,项目现在部署成功。
步骤如下:
- 关闭Visual Studio
- 导航到 YourSolution/Packages/
- 删除所有内容 除了 packages.config
- 重新打开 Visual Studio
中的解决方案
- 右键单击解决方案并select“管理 Nuget 包”
- 单击出现在对话框顶部的“恢复”按钮window
重建解决方案,它应该可以正确部署
尝试使用 Microsoft Band SDK 部署应用程序时出现以下错误。构建配置为 RELEASE,目标输出为 ARM。如果使用 DEBUG 配置,它可以工作。
Error : DEP6810 : MdilXapCompile.exe failed with error code 2001.
我检查了 MDILXapCompileLog,下面是编译失败的地方:
CrossGen failed
Error processing assembly [projectpath]...\obj\ARM\Release\MSIL\Microsoft.Band.dll
Raw error code: 2148733978
注意:关于这种情况的额外奇怪部分是,如果我只打包应用程序而不部署,我可以将它侧载到设备上,它会按预期工作。
这是 csproj 部分 - Debug/ARM:
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\ARM\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_PHONE_APP</DefineConstants>
<NoWarn>;2008</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
Release/ARM
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
<OutputPath>bin\ARM\Release\</OutputPath>
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_PHONE_APP</DefineConstants>
<Optimize>true</Optimize>
<NoWarn>;2008</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>ARM</PlatformTarget>
<UseVSHostingProcess>false</UseVSHostingProcess>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
我看到的唯一区别是调试符号,Microsoft.Band.dll 可以没有 public 符号吗?难道 Visual Studio 不应该创建它们吗?
我注意到即使更新到较新的 SDK,该解决方案仍然有旧的 Band SDK - Preview 包。我手动删除了所有 nuget 项目,强制刷新包,项目现在部署成功。
步骤如下:
- 关闭Visual Studio
- 导航到 YourSolution/Packages/
- 删除所有内容 除了 packages.config
- 重新打开 Visual Studio 中的解决方案
- 右键单击解决方案并select“管理 Nuget 包”
- 单击出现在对话框顶部的“恢复”按钮window
重建解决方案,它应该可以正确部署