C# C“我做的dll有时会得到”;“封锁”;下载时在文件属性中

C# C“我做的dll有时会得到”;“封锁”;下载时在文件属性中,c#,.net,security,windows-10,ntfs,C#,.net,Security,Windows 10,Ntfs,我有一个C#应用程序可以在线下载。但是,当客户下载它时,我创建了一个.dll,它有时会被“阻止”,需要通过转到文件属性并单击“取消阻止”来“取消阻止”。.exe将不会运行,因为发生了此错误。我不明白为什么Windows决定阻止它 我知道我也可以通过在PowerShell或Streams.exe中使用unblock file以编程方式取消阻止该文件。我还知道,通过编辑文件的ZoneIdentifier,我可以手动阻止文件,以便在某种程度上重现问题。但是,我无法通过下载来重现该问题。我曾尝试在Win

我有一个C#应用程序可以在线下载。但是,当客户下载它时,我创建了一个.dll,它有时会被“阻止”,需要通过转到文件属性并单击“取消阻止”来“取消阻止”。.exe将不会运行,因为发生了此错误。我不明白为什么Windows决定阻止它

我知道我也可以通过在PowerShell或Streams.exe中使用unblock file以编程方式取消阻止该文件。我还知道,通过编辑文件的ZoneIdentifier,我可以手动阻止文件,以便在某种程度上重现问题。但是,我无法通过下载来重现该问题。我曾尝试在Win10和Win7中从网站下载我的程序,甚至在gpedit中编辑了“不要在文件附件中保留区域信息”,但都没有用

我的问题是,为什么有时我的.dll在从internet下载时会被阻止?我如何通过对dll进行数字签名来防止这种情况发生?


当我打包C#解决方案时,我是否做错了什么?是否有办法重现被阻止的特定下载

我不知道原因。据我所知,如果您下载任何未知的dll或可执行文件(特别是在Chrome中),它将被阻止,并且在取消阻止之前,您无法在项目中使用该二进制文件

解决方案:获取dll以及ziprar文件中的任何内容。然后在客户系统中下载并解压缩zip文件。
甚至有些Microsoft二进制文件也是以zip格式提供的。考虑一下,

客户到底下载了什么,如何下载?“当我打包我的C#解决方案时”-什么是打包?Windows会阻止任何下载的位以防止安全风险。所以你不应该下载二进制文件,而是安装程序(比如MSI)。@LexLi它们是运行在Windows和Linux上的.NET Framework 4.5应用程序。这就是为什么在这种情况下不使用MSI的原因。@Sinatr当我构建我的c#解决方案时,我压缩bin/release文件夹并将其放在站点上下载。请参阅。