【问题标题】:UWP exclude dependency DLL to be copied / included into packageUWP 排除要复制/包含到包中的依赖 DLL
【发布时间】:2017-12-19 18:37:29
【问题描述】:

我完成了一个 xamarin 表单应用程序并提供给 Android Market。没问题,一切正常。它是活的。 我在调试和发布中测试了 UWP。创建包并使用该包进行本地应用程序认证测试,所有检查绿色,通过。我创建了提交并发布到 Microsoft Store。它未能通过消息进行认证。

调试配置测试

FAILED
Debug configuration
Error Found: The debug configuration test detected the following errors:
The binary Syncfusion.SfNumericTextBox.XForms.dll is built in debug mode.
Impact if not fixed: Windows Store doesn’t allow a debug version of an app.
How to fix: Please make sure the app isn’t linking to any debug versions of a framework and it is built with release configuration with optimization enabled. If this is a managed app please make sure you have installed the correct version of .NET framework.

我根本没有将这个包安装到我的项目中。然而,syncfusion 中还有另一个名为 sfDatagrid 的包,它将此 dll 作为依赖项。所以它在我的 XF 和 UWP 项目中添加了一个引用。我根本不需要和使用这个 dll。这就是我尝试关注的原因

  1. project.json 中删除引用和nuget 引用 两个项目的文件。删除了每个项目(XF 和 UWP)下的 bin、obj 文件夹,清理了 temp 文件夹。重建整个解决方案。

  2. 第一次失败。所以我让它引用在那里,但将local copy 设置为“false”。它也没有工作。

  3. 那里有project.lock.json 文件,这仍然包含参考,我试图手动删除所有参考,但它仍然没有工作

这显然是包提供者的错误。我已经报告了它,他们注册为一个事件,但即使他们修复了,他们也会在月底发布更新的版本。所以我的问题是无论如何我可以告诉编译器在创建包时排除这个dll吗?

在 Android 中可能因为我使用的是“完整链接”,所以它排除了这个 dll,而没有引用这个 dll。

在 UWP 中,我确实使用了 Compile with Native tool Chain option as shown below,但显然它没有做同样的工作。

【问题讨论】:

  • 第一个问题,您是否使用我认为是自定义控件的“Syncfusion.SfNumericTextBox.XForms.dll”。如果不是,那么只需从您的 UWP 项目中删除该引用。
  • @Digitalsa1nt 正如我上面所说,我根本不使用它,也没有任何参考。我试图手动删除引用,但它不起作用。我看到 dll 也被复制到 \bin\x86\Release 和 \bin\x64\Release 和 obj 文件夹下。
  • sweet,删除你的 bin 和 obj 文件夹并重建 UWP 项目。这适用于上周我在这里回答的另一个类似问题。 stackoverflow.com/a/44952044/4486115 同样的原则也适用于此。
  • @Digitalsa1nt 我删除了所有内容。斌。 obj,在每个单独的项目下 uwp,xf。清理临时文件夹。清洁和重建的解决方案。它没有帮助
  • 您上图的设置没有问题。所以显然在某处对该程序集存在某种依赖性,我知道你说你已经删除了引用,但是是否还有任何 nuget 包仍然与构建相关联?

标签: .net xamarin uwp


【解决方案1】:

Syncfusion 已将 NuGet 包与 DLL 的发布版本一起重新发布。

确保在构建之前清除 NuGet 缓存 (https://www.syncfusion.com/kb/6987/how-to-clear-nuget-cache)。

【讨论】:

  • 这与从 nuget 文件夹中删除下载的包有什么不同吗?
  • @batmaci 我在一台机器上运行了“nuget locals all -clear”,然后在另一台机器上我尝试手动删除包。在这第二台机器上,除了 .nuget 文件夹中的包之外,我还必须删除其他位置的文件,例如 http-cache(所有位置都以“nuget locals all -List”列出)。正确完成后,您会注意到 SfNumericTextBox dll 上的修改日期是 2017 年 7 月 17 日,而不是之前的 2017 年 7 月 3 日。
  • 感谢您的提示。我明天会试试这个,让你知道结果。
猜你喜欢
  • 2019-02-05
  • 2010-09-19
  • 1970-01-01
  • 2020-10-25
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多