如果我从网络驱动器右键单击我的应用程序并选择Run As |当前用户,无论应用程序是否运行,取决于我是否单击子复选框(“保护我的计算机和数据免受未经授权的程序活动”)。
如果我选择“保护我的电脑...”复选框,然后选择确定按钮,我会发现,“无法找到运行此应用程序的运行时版本。”
但是,如果我取消选中该复选框,则运行正常。
显然,.NET运行时被认为是“未经授权的程序活动。”
如果我从另一个用户的计算机上的同一位置(映射驱动器上的文件夹,既不是我的也不是用户的C:驱动器)运行此应用程序,它将无法启动,并且给我一个iofileloadexception错误。但AFAIK,应用程序所需的.DLL已被复制到映射驱动器的文件夹,以及启动过程引用的文本文件。是否有一个工具可以显示使用Visual Studio(2010)创建的C#.exe需要分发哪些辅助文件? IOW,这样的工具应该告诉我,我需要log4net.dll,一个自定义的内部框架.DLL,以及前面提到的文本文件。也许其他一些东西,当部署时,将允许应用程序在用户的机器上运行。
好吧,我认为我可能“在路上”,只要能够确定需要使用给定的.exe部署哪些文件:
如果选择Project |属性|发布| Visual中的应用程序文件 Studio,它似乎只显示您需要使用您的应用部署哪些文件。然而, 还有一些问题(在下面的括号中注明;以及在...中的重磅炸弹 端):
EXE and related files:
1) <appName>.exe (duh, AKA "doh")
2) <appName>.exe.config
3) <appName>.exe.manifest (I have no such file - although I do have a file named
<appName>.vshost.exe.manifest; should I rename it by stripping out the "vshost" part of the name?)
4) <appName>.ico
DLLs:
Any non-native DLLs your project uses, such as (in this case):
<customFrameworkAssembly>.dll
log4net.dll
Devart.Data.dll
Devart.Data.Oracle.dll
但是,它无法解释为什么我能够从其他开发人员那里运行该应用程序 机器(即使这些文件尚未部署到共享网络目录)。
答案 0 :(得分:0)
通过选择Project |,可以从Visual Studio中的项目中看到需要部署的文件属性|发布|申请文件......
一旦你将它们移动到与.exe相同的位置,所有这一切都与世界一致(好吧,无论如何,你的小世界的这一小部分)。