【问题标题】:Execute a included exe with C#使用 C# 执行包含的 exe
【发布时间】:2014-07-09 16:15:02
【问题描述】:

由于我不知道为什么我的 clickOnce 应用程序无法验证目标 PC 上是否已安装必备组件https://stackoverflow.com/questions/24614637/prerequisite-visual-studio-2012

我想知道是否可以将 Visual Studio 2012 Update 4 (vcredist_x86.exe) 的 Redistribuable Visual C++ 包含到我的应用程序中,并在运行时检查该产品是否与 ProductCode 一起安装,然后执行 vcredist_x86 .exe

你认为这是一个好方法吗?

谢谢

【问题讨论】:

  • '你认为这是一个好方法吗?' 不。通常这是由应用程序的安装程序完成的。
  • 您可以改为在应用的安装文件夹中包含所需的 DLL,而不是实际安装 vcredist。
  • @mclaassen 我会试试你的建议

标签: c# c++ visual-studio visual-studio-2012 clickonce


【解决方案1】:

我建议只在应用程序的安装文件夹中包含必要的 DLL,它们是所需的 VC Redistributable 版本的一部分。如果您的应用程序链接到其中一个 DLL,则默认情况下会先搜索应用程序的当前工作目录,然后再查看 C:\Windows\...中的标准安装目录...

【讨论】:

  • 复制文件修复问题,但同事告诉我,将微软文件复制到与EXE相同的文件夹(mfc110.dll,mfcu110.dll...),这不是一个好方法,除了这些文件都准备在与exe相同的文件夹中的两个不同文件夹(Microsoft.VC90.CRT和Microsoft.VC90.MFC)中,我不知道为什么exe没有在那里搜索!
  • 我认为它只搜索.exe文件同级目录,不会递归到同级其他目录(msdn.microsoft.com/en-ca/library/windows/desktop/…)
  • 我认为添加 #define _BIND_TO_CURRENT_MFC_VERSION 1 #define _BIND_TO_CURRENT_CRT_VERSION 1 将允许搜索文件夹,我想念我的同事告诉我的内容,无论如何只是为了让您知道即使在 Microsoft 上您的建议也很好网址:msdn.microsoft.com/en-us/library/ms235264.aspx最后两行第一段--谢谢
猜你喜欢
  • 2012-10-15
  • 1970-01-01
  • 2020-08-24
  • 1970-01-01
  • 1970-01-01
  • 2014-04-14
  • 1970-01-01
  • 1970-01-01
  • 2015-10-10
相关资源
最近更新 更多