2010-09-01 118 views
0

我需要将我的程序静态发布给我的教授,但是每当我编译该程序,然后在另一台计算机上运行它时,它告诉我找不到dll显然我做错了什么。我需要做什么来建立一个静态构建?如何在Visual Studio 2010中构建静态链接的程序?

+0

语言?如果它是一个.NET应用程序,则不能使用ILMerge等静态链接。 – Josh 2010-09-01 05:18:13

+0

当然,如果不在目标计算机上安装.Net Framework,它仍然无法运行。 – treaschf 2010-09-01 05:26:56

+0

哪个DLL丢失? – jdehaan 2010-09-01 05:48:55

回答

0

将项目设置更改为静态版本后,选择“全部生成”(或“全部重建”)。如果这不起作用,请选择“删除所有中间文件”并构建。

0

问题加载.dll文件通常依赖干从一两个问题:

  • 组件在GAC中失踪。
  • 应用程序目录中缺少组件。

在这种情况下,我敢打赌,你可以解决以下通过确保问题:

  • 提供给您的教授认为,复制到您的输出文件夹作为一个包中的所有组件。
  • 确保您的教授安装了正确的依赖关系。例如,如果您的应用程序是.NET,请确保您的教授安装了正确的.NET框架(如果是这种情况,可能是.NET 4)。
0

如果您正在编译C/C++程序,请查看编译器安装目录中的vcredist exe可执行文件。此可再发行版包含运行您的应用程序所需的side-by-side assemblies。它是特定于您正在使用的编译器的版本。当您进行设置或部署时,您必须将其安装在目标计算机上。另外不要忘记编译一个“发布”。没有在那里安装调试DLL的情况下,“调试”将不会在其他机器上运行,这不是vcredist的一部分。

这是microsoft网站上的vcredist的链接。您必须采用与您使用的编译器完全匹配的那一个。更好的办法是从编译器的安装目录中找到它,以确保它匹配。

相关问题