我正在努力解决部署问题,这让我完全迷失了。它是这样的:
我有一个安装应用程序的Visual Studio部署项目 - 每个程序集都编译为目标.NET Framework 2.0。我最近强选了它们(因为其中一个程序集是MS Word和MS Outlook的“共享加载项”,并且指南说这些应该是强名称。我不知道为什么。)我认为这是我的问题开始的时候。但我也错了。
现在的问题是,在安装.MSI-package之后,我尝试运行应用程序并崩溃。当我现在转向Windows Update时 - 它以某种方式检测到需要安装.NET Framework 3.5 sp1。如果我在安装我的.MSI包之前运行它,它就不会检测到它!
安装.NET Framework 3.5后,我的应用程序就开始生效了。
我不知道这种依赖来自哪里! (如果我无法弄清楚,那么我将不得不为我的应用程序制作3.5,但如果我能找到依赖来源的位置,我会很高兴。)
我不知道这是否是一个线索,但在我安装3.5之前,我尝试使用Reflector检查程序集,而Reflector无法从一个程序集导航到另一个程序集,说“以下程序集名称无法自动解析”然后它指出了同一文件夹中存在的文件的正确程序集名称,版本和PublicKeyToken。更奇怪的是,它依赖于Microsoft.VisualC程序集。但话又说回来:安装完成后,一切都解决了。
我非常感谢任何可以解决我的问题的事情,
TIA
答案 0 :(得分:1)
嗯,好吧,经过一些不眠之夜后,我终于明白了它真的不是完整的.NET Framework 3.5所需要的。只是一些恰好与它一起分发的文件。我的一个程序集是用C ++ / CLI编写的,然后我还需要分发先决条件“Visual C ++ Runtime Libraries(x86)”。一旦发现它,有点明显。 叹息
答案 1 :(得分:0)
很难理解在没有看到代码的情况下引入依赖项的位置。您可以使用Reflector(免费工具)来分析您的DLL,并查看包含的引用。
答案 2 :(得分:0)
转到解决方案资源管理器。选择您的安装项目。右键点击。转到视图>发射条件。然后在打开的新窗口中,选择.NET Framework,并转到其属性。其中一个属性称为Version。在那里,如果你有3.5则那就是你的问题。将其更改为2.0,您就可以了。