Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在卸载windows窗体应用程序期间选择dll文件_C#_Visual Studio 2010_Dll_Setup Project_Uninstallation - Fatal编程技术网

C# 在卸载windows窗体应用程序期间选择dll文件

C# 在卸载windows窗体应用程序期间选择dll文件,c#,visual-studio-2010,dll,setup-project,uninstallation,C#,Visual Studio 2010,Dll,Setup Project,Uninstallation,我用c#编写了一个windows窗体应用程序,并创建了安装文件。一切正常。 我的问题是,;我们可以选择哪个dll和exe文件应该包含在安装程序中,比如说,我们可以选择哪个dll应该被删除,或者至少当我们尝试卸载程序时,它会问我们“如果我应该删除这些…公共dll文件”吗? 因为当我卸载它时,它可以删除系统当前使用的常见dll。所以会有一个问题。 我在VisualStudio中创建了安装文件 > P>您可以考虑另一种打包软件,如StutsBudio,VisualStudio包装项目不提供这样的配置。

我用c#编写了一个windows窗体应用程序,并创建了安装文件。一切正常。 我的问题是,;我们可以选择哪个dll和exe文件应该包含在安装程序中,比如说,我们可以选择哪个dll应该被删除,或者至少当我们尝试卸载程序时,它会问我们“如果我应该删除这些…公共dll文件”吗? 因为当我卸载它时,它可以删除系统当前使用的常见dll。所以会有一个问题。
我在VisualStudio中创建了安装文件

> P>您可以考虑另一种打包软件,如StutsBudio,VisualStudio包装项目不提供这样的配置。

以面值考虑这个问题:实际上,您不太可能安装由其他程序共享的DLL。VS build system和Setup project向导都会尽力阻止您执行此操作。在.NET中执行此操作的唯一有效方法是对程序集进行强名称命名并将其部署到GAC中。非GAC方式是实现AppDomain.AssemblyResolve事件。如果你真的这样做了,你会在你的问题中提到这一点

Winforms应用程序的正常部署模式是ClickOnce或安装程序(如您所做),或者只是复制文件。如果安装后,EXE及其使用的DLL位于一个目录中,则您不共享任何DLL


如果我猜错了,而您实际上正在共享DLL,那么到目前为止,最好的解决方案是停止这样做。DLL地狱没什么好惹的。

实际上我想让程序阻止我。并询问我应该删除哪些dll。