English 中文(简体)
顾客愤怒,与不明身份的DL受扶养人交战
原标题:Customers angry, fighting unknown DLL dependencies

I m 一人显示正在开发C++ 客户的视窗应用。 在过去几个月里,我们一直在处理客户机器中缺失的DL附属公司的问题。 尽管我作出了最大努力,但有些事情仍然错失,我们回过了愤怒的电子邮件。 我的 b子和我的 b子与我一样感到愤怒,客户们也高兴。

我希望你们能够帮助我们出来,就如何实现可交付目标提出建议。 在某些明显之前:

  1. I have no test machine. That is, I can t replicate the customer environment nor attempt to install the app on a "clean" system to catch gotchas before shipping.
  2. I ve tried using depends.exe to track down what versions of the DLLs my project is dependent upon. I m shipping our code with the redistributables I ve been able to find that way. After that it s an angry customer email waiting game.
  3. I do have access to a 64-bit machine and 32-bit machine to install new builds. It always works there.
  4. I m required to use a third-party DLL which can not be registered (it s buggy as hell.)
  5. I m not supposed to use Install Shield, any other automated installer, or write an install script.
  6. I provide written instructions on how to get the app installed (unzip, double click exe file.)

I m tired of taking heat for this stuff. What am I missing that I could be doing? What should I ask in terms of support from my employer? How should I ask for that support in a way that they ll provide it?

最新情况:

虚拟机器装满。 他们不希望我花一切时间建立和摧毁客户组合。 相反,我现在与客户一道工作,以获得一个基配置,使我知道本应目标的确切机组。 如果不屈不.,我就不再需要照顾。 尽管我仍然喜欢测试机器,但至少有些事情已经到了。

最佳回答

如果你没有测试机器,你至少能否使用一个装有清洁窗安装的虚拟机器?

问题回答

你们应该站出来。 在您的封不动信中,你应解释局势是多么荒谬的,使你和客户都感到沮丧。 请允许我谈谈你对你局势的看法:

我没有试验机器。 也就是说,我可以重复客户环境,也不要试图安装在“清洁”系统中的仪器,以便在航运之前赶上 go。

没有一个专业发展公司没有安装检测设备释放产品。 我们是一家非常小的公司,我们拥有无数的证书,我们进行测试,我们操作安装器。

我在尝试使用这取决于能否追踪我的项目所依赖的DLs的各种版本。 我把我们的法典与可再分配的I ve能够找到这种方式。 之后,它向一家愤怒的客户发出等待游戏的电子邮件。

我确实可以动用64台轨道机器和32台轨道机器安装新的建筑。 它一直在那里工作。

这些 are太坏或太奇怪。 奇怪的是,如果你重新维持一个没有证件的遗留系统,那么你不知道谁是谁是谁是谁? 那么,如果你不记录任何东西,那么你雇主就不能这样做。

遗憾的是,你说,这些系统不是“精干的”,因此很容易失去跟踪成功安装产品的实际必要步骤的轨道。

I m 要求使用无法登记的第三方DLL(轮椅)。

发生这种情况。

I m 不应使用Install盾,或任何其他自动安装器,或书写一个装置。

我提供书面指示,说明如何获得安装(unzip,双点击外壳)。

这完全是疯狂的。 客户是能够遵循基本指示的NOT。 告诉你不要使用安装装置使客户的生活更容易,这几乎肯定是你问题的原因。 你可以告诉他们做了什么。 当你问他们时,他们会 lie或忘记他们做的事情......如果他们知道开始的话。 你的雇主通过这一法令造成了一个令人痛心的支持问题,这种局面显然永远不会改善。

这个问题与第一个问题(没有适当的安装试验平台)有关,而你的产品肯定会失败。 你们的客户也应当mad,你们也应该。 雇主创造的情况不利于成功产品的发展。 简单地说,在解决这些问题之前,你无法做任何事情。

I have no test machine. That is, I can t replicate the customer environment nor attempt to install the app on a "clean" system to catch gotchas before shipping.

这种设置通常永远不会达到目的。 无论您的开发机和客户机之间总会有多大的差别。 一次,视像演播室往往包括一个打断时间的载荷,这样它就可以使你的申请取决于不说什么。 建立虚拟机器并不十分复杂。 I use RVWare Workstation ,以复制各种不同的机器。 仅需要的是,您拥有操作系统和计划许可证,希望安装在虚拟机器上。 无国界记者协会提供30天的免费审判,此后,我相信189美元。

其他人给你一个大局的答案;这里是一对二小小小小小小小小小的建议,如果你无法采取更大行动的话,你会发现这种建议是有益的:

  • list what DLLs your application is dependent on. If you don t know exactly what your application depends on, how can you ensure that the dependencies are available?
  • Write a utility that searches out and logs any instance of those DLLs on a system, along with the DLL version and the system s path. If a user is having problems, this utility might go a long way to helping you troubleshoot the problem, since you ve mentioned that you don t have physical or network access to the machines that exhibit the problem.
  • write a utility that does nothing but LoadLibrary() your dependencies. Failures can be logged and at least you ll have an easy way to determine what s wrong on a customers machine.

希望能够很快发现共同的问题,并找到解决办法,以便它们不再成为共同的问题,而且你较少需要使用这些工具。 但是,在你处理可能证明有益的问题之前。

另外,在一份评论中,你提到问题是由Windows系统DLs造成的,这些系统一般会造成很少的现代系统“DL hell”问题,因为第3级当事人软件(包括你的软件)一般无法取代这些问题。 所有Windows系统都应获得管理系统所提供的服务,而管理系统对于使新的系统落后于兼容而言是非常好的(但不一定是完美的)。 如果这些问题给你造成问题,你可能希望把他们掌握的DLLs的细节(可能的话)放在后面,以便人们能够以更具体的方式回答问题,就像需要配置以确保Windows 安装DL。

Present it to your boss this way:
A machine for testing installations is far cheaper than a pissed off customer or even your TIME in tracking down issues.

你们的一些依赖者能否以静态的方式联系起来?

您可以要求客户进入互联网或类似用户利用自己的环境。

如果你通过一条完整、绝对的道路来<代码>LoadLibrary(),则只看DL的准确位置。 你也许能够利用这一机会解决你们的一些问题。 • 在“校准”的夹子内包罗你所有的电离层器,并将其列入手提文件。 只要“校准”与“校准”相重,你就可以使用<代码>。 CanCurrentDirectory,以建造通往这些图书馆的绝对通道,并确保所装的校正与你在测试软件时所使用的校准相同。 然而,如果你使用你无权重新分配权利的图书馆,那么这种方法就非常有用。

I deck out the VERWare. 它是一种极好的冷却虚拟机器,而且你可能为客户的环境带来危险。

此外,我还有一句话。 他们完全有可能根据你所发产品经过你彻底测试的假设重新生产。 因此,这很可能是一个错误的沟通,我只想与他交谈。 如果你不理解你的观点,我肯定会考虑放弃,因为情况是,如果产品成功,他会声称他必须“给你”和“打你”。 在你的审查中,他完全有可能否认你不合作或最坏。 因此,我最好谈一下,然后根据你是否应继续与公司合作作出决定。

您是否确信,视窗的版本和服务包正在开发中是用户机器的“类似”? 否则就试图这样做。 有时不同的特殊产品是游戏的主轴。

你们可以使用所有建议或你可能拥有的证书(Norton) 各种版本和特殊产品频谱图像,但你的企业不得不承担机器的费用。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签