2010-07-22 53 views
0

我有一个非常简单的命令行.net应用程序。我参考了一个.dll程序集,当我在Visual Studio中运行该程序时,所有的工作都非常棒。但是,当我尝试双击.exe文件或通过DOS手动运行它时,它错误地指出它没有访问权限或无法找到我的程序集引用。为什么在Visual Studio外运行时,我的命令行应用程序在远程程序集上出错?

我现在对这种情况了解多少?它与权限相关吗?或者我必须以另一种方式链接程序集引用?我在网上找不到与此相关的任何内容。

+0

exe位于哪里?在构建输出文件夹?在网络上?哪里? – 2010-07-22 20:43:51

回答

0

尝试将dll复制到与exe相同的文件夹,如果它尚不存在。 如果dll是在Visual Studio中作为同一项目的一部分构建的,那么请确保两个程序集正在编译(构建全部)。

当VS直接运行应用程序时,它会创建应用程序的不同版本,而不是您要发布的版本。你会注意到yourapp.vshost.exe这是视觉工作室的一个,而不是你应该运行的那个。

+0

那么我遵循你的逻辑,但是失败了我创建外部装配的目的。我有大量的命令行对象,大多数情况下使用相同的对象来完成这项工作。因此我不想将相同的.dll复制到每个项目中。因此,每次更新程序集时,我都必须将.dll复制到每个命令行应用程序。 有没有办法简单地做参考工作?或者将.dll文件放在我的所有命令行项目中通用的位置? – Ryan 2010-07-22 20:56:27

+0

@Ryan然后在GAC中安装.dll http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=713 – 2010-07-22 20:57:33

+0

这样做!我将大会与GAC联系起来,完全解决了这个问题。 我不能投票了这个答案B/C我没有足够的代表点:( – Ryan 2010-07-26 16:10:42

相关问题