我有一个C#应用程序,可以在线下载。但是,当客户下载它时,有一个我创建的.dll,SOMETIMES变成了“被阻止”,需要通过转到文件属性并单击“解除阻止”来进行“解除阻止”。 The.exe将不会运行,因为这样。我不知道Windows为什么决定阻止它。
我知道我也可以通过在PowerShell或Streams.exe中使用Unblock-File来以编程方式取消阻止文件。我也知道,通过编辑文件的ZoneIdentifier,我可以手动阻止文件,以便在某种程度上重现该问题。但是,我无法通过下载重现该问题。我曾尝试从Win10和Win7网站上下载程序,甚至还编辑了gpedit中的“不要在文件附件中保留区域信息”,但无济于事。
我的问题是,为什么有时从互联网上下载我的.dll会被阻止? 如何通过对dll进行数字签名来防止此阻止发生? strong>
打包C#解决方案时我做错什么了吗?有没有一种方法可以阻止特定的下载?
答案 0 :(得分:0)
我不知道原因。据我所知,如果您下载了任何未知的dll或可执行文件(特别是在Chrome中),它将被阻止,并且在取消阻止之前,您无法在项目中使用该二进制文件。
解决方案:将dll及其所有内容保存在 zip 或 rar 文件中。然后下载zip文件并将其解压缩到客户系统中。 甚至某些Microsoft二进制文件都以zip格式提供。考虑看看Process Explorer。