繁体   English   中英

如何定位 .NET Framework 3.5 的依赖关系

[英]How to locate dependency of .NET Framework 3.5

我正在努力解决一个让我完全迷失的部署问题。 它是这样的:

我有一个安装应用程序的 Visual Studio 部署项目 - 每个程序集都编译为针对 .NET Framework 2.0。 我最近强烈命名了它们(因为其中一个程序集是 MS Word 和 MS Outlook 的“共享加载项”,并且指南说这些应该被强烈命名。我不知道为什么。)我认为这是什么时候我的问题开始了。 但我也可能是错的。

现在的问题是,在安装 .MSI 包后,我尝试运行该应用程序并崩溃。 当我现在转向 Windows 更新时 - 它以某种方式检测到需要安装 .NET Framework 3.5 sp1。 如果我在安装 my.MSI 包之前运行它,它不会检测到这一点!

安装 .NET Framework 3.5 后,我的应用程序开始运行。

我不知道这种依赖来自哪里,(如果我无法弄清楚。那么我将不得不为我的应用程序制作 3,5。但如果我能找到依赖来自哪里,我会很高兴.)

我不知道这是否是一个线索,但在我安装 3.5 之前,我尝试使用 Reflector 检查程序集,并且 Reflector 无法从一个程序集导航到另一个程序集,说“无法自动解析以下程序集名称”然后它说明存在于同一文件夹中的文件的正确程序集名称、版本和 PublicKeyToken。 更奇怪的是,它依赖于 Microsoft.VisualC 程序集。 但话又说回来:安装 3.5 后,一切都解决了。

我非常感谢任何可以阐明我的问题的东西,
TIA

好吧,好吧,经过几个不眠之夜,我终于理清了,这真的不是所需的完整 .NET Framework 3.5。 只是一些恰好与它一起分发的文件。 我的一个程序集是用 C++/CLI 编写的,然后我还需要分发先决条件“Visual C++ Runtime Libraries (x86)”。 一旦你发现它就很明显了。

如果没有看到您的代码,很难理解您在哪里引入了依赖关系。 您可以使用Reflector (免费工具)来分析您的 DLL 并查看其中包含的引用。

Go 到您的解决方案资源管理器。 Select 您的设置项目。 右键点击。 转到视图 > 启动条件。 然后在打开的新 window 内部,select .NET 框架,以及 Z34D1F91FB2E514B8576FAB1A75A8 到它的属性。 其中一个属性称为版本。 在那里,如果您有 3.5,那么这就是您的问题。 将其更改为2.0,您会没事的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM