代码之家  ›  专栏  ›  技术社区  ›  punkouter

正在取消阻止公司计算机上的dll。怎么用?

  •  17
  • punkouter  · 技术社区  · 14 年前

    我正在尝试测试mvmlight,但它附带的DLL被阻塞。我已经阅读过,并被告知单击“文件”属性中的“取消阻止”。但这对我来说不存在。然后我发现了一个名为streams的程序,该程序假定要解除阻塞。那不管用…还有其他解决办法吗?

    错误7

    无法加载程序集 文件:///c:\mix10 mvvm samples\mix10.mvmdomo2- 结束\mix10.mvmdemo2\bin\debug\galasoft.mvmlight.extras.sl4.dll

    . 此程序集可能已从Web下载。如果程序集已从Web下载,则Windows会将其标记为Web文件,即使它位于本地计算机上。这可能会阻止它在您的项目中使用。您可以通过更改文件属性来更改此名称。仅取消阻止您信任的程序集。见 http://go.microsoft.com/fwlink/?LinkId=179545 更多信息。MIX10MVVMDEO2

    6 回复  |  直到 14 年前
        1
  •  21
  •   Hans Passant    12 年前

    该文件包含一个备用数据流,该数据流指示内容是从Internet检索的,不安全。这是NTFS文件系统的一个功能,不幸的是,它隐藏得很好,因为资源管理器不支持显示其内容。您可以使用dir/r命令选项在命令提示符中看到它们。并键入其内容,键入文件名:streamname。并用delete-filename:streamname删除它们

    另一个技巧是将文件复制到不支持备用数据流的文件系统中,从而将它们从文件中剥离。例如闪存驱动器。或者压缩实用程序。

    我认为,从Win7开始,Windows的更高版本在资源管理器中对此有内置的支持。右键单击文件、属性并单击“取消阻止”。

        2
  •  16
  •   Mas    12 年前

    SysInternals有一个很棒的命令行实用程序,名为 Streams . 这对我很有用。

    Streams v1.56-枚举备用NTFS数据流版权所有(C)1999-2007 Mark Russinovich SysInternals-www.sysinternals.com

    用法:streams[-s][-d]<文件或目录>
    -递归子目录
    -D删除流

    在要从中删除流的目录中执行以下命令( 与复制到USB/FAT32驱动器的效果相同 )

    streams.exe -d -s *.*

        3
  •  10
  •   Otávio Décio    14 年前

    先解除对zip文件的锁定,然后提取dll。实际上,这是它们指示要做的。 here .

        4
  •  10
  •   Oleg    14 年前

    只是为了全面了解。NTFS支持流(请参阅 http://msdn.microsoft.com/en-us/library/aa364404%28VS.85%29.aspx )流的全名是 文件名:流名称:流类型 . 因此,您可以轻松地在附加的文件流中写入有关文件的一些附加信息。如果从Internet Explorer下载文件,请在流中用名称写入一些简单信息 Zone.Identifier . 如果您有从Internet下载的test.dll文件,则可以使用

    more < test.dll:Zone.Identifier
    

    从流中查看信息。你会看到

    [ZoneTransfer]
    ZoneId=3
    

    取消阻止不只是删除此流。我建议你阅读 http://weblogs.asp.net/dixin/archive/2009/03/14/understanding-the-internet-file-blocking-and-unblocking.aspx 有关详细信息

        5
  •  2
  •   David Perlman    14 年前

    我只是用notepad++打开了dll文件,并用不同的名称保存了它。

        6
  •  0
  •   Jim G.    11 年前

    如果它对任何人都有帮助,我从tfs中删除了两个被阻止的dll。

    我的解决方案:

    • 在Windows资源管理器中,删除两个被阻止的DLL。
    • 在tfs内部,对文件夹执行“获取特定版本”操作,并确保选中“即使本地版本与指定版本匹配,也覆盖所有文件”,这样您就可以提取已删除dll的新副本。
    • 重新构建解决方案。