标签: assemblies

是否可以使用强大的命名程序集来验证程序集作者?

我一直在阅读MSDN,强名称程序集和相关的Stack Overflow问题中的正确文章,检查程序集的强名称.

  1. 在何种程度上可以验证强名称的装配以避免篡改?
  2. 是否可以使用强命名来验证程序集作者?

第一个问题出现在阅读CSharp411文章.NET程序集常见问题 - 第3部分 - 强名称和签名之后,其中提到了这一点,以及使用强名称的其他问题:

" 无法完全替换.强名称不能阻止黑客删除强名称签名,恶意修改程序集,用自己的密钥重新签名,然后将你的程序集作为你的程序. "

第二个问题旨在找出强命名和其他签名方案之间的差异,例如Authenticode.同样的MSDN文章提到了早期的状态:

"但请注意,强名称本身并不意味着一定程度的信任,例如通过数字签名和支持证书提供的信任. "

我是否尝试使用强命名,而不是创建它?创建强命名是为了避免名字冲突还是一种新的"GAC DLL Hell"?

.net security strongname assemblies

20
推荐指数
2
解决办法
6819
查看次数

.NET中部分可信的程序集/应用程序/代码/等是什么?

有人可以解释一下吗?我在互联网上找不到任何东西,一切都在谈论如何以某种方式解决这个问题,但没有什么能说清楚到底是什么.

什么是完全可信的组件,它们如何彼此不同?

我有一个MS认证考试,这是我唯一不理解的话题.

编辑:谢谢你们.现在我对.NET的安全性有了更好的理解.我能够通过认证考试.

.net assemblies partial-trust

20
推荐指数
2
解决办法
7636
查看次数

Maven创造平拉链组件

对于那里的Maven大师:我正在尝试将非java项目工件(.NET)打包到一个zip文件中.我有两个问题:

如果我将POM中的包装更改为zip <packaging>zip</packaging>,我会收到以下错误消息:[INFO] Cannot find lifecycle mapping for packaging: 'zip'. Component descriptor cannot be found in the component repository: org.apache.mav en.lifecycle.mapping.LifecycleMappingzip.好的,没什么大不了的 - 我把它更改<packaging>pom</packaging>为去除在目标目录中创建的无用jar

我的主要问题是我打包成ZIP的文件嵌套在几个目录中,但我需要把它们放到ZIP的顶级目录中.这是我的汇编文件:

 <assembly>
  <id>bin</id>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>${basedir}/${project.artifactId}</directory>
      <includes>
        <include>**/Bin/Release/*.dll</include>
        <include>**/Bin/Release/*.pdb</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>
Run Code Online (Sandbox Code Playgroud)

当我运行这个 - 我将获得ZIP文件,但文件将嵌套,从C:\开始,然后是完整路径.为了给你提供想法 - 项目将二进制文件转储到以下结构中 ProjectFoo\ProjectFoo\subproject1\Bin\Release\foo.dll,我需要ZIP\foo.dll

这是程序集插件配置:

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
    <descriptors>
        <descriptor>assembly.xml</descriptor>
    </descriptors>
</configuration>
<executions>
    <execution>
        <id>zip</id>
        <phase>package</phase>
        <goals>
            <goal>single</goal>
        </goals>
    </execution>
</executions>
Run Code Online (Sandbox Code Playgroud)

也许我只需要使用antrun并执行ant zip任务?

zip maven-2 assemblies

20
推荐指数
1
解决办法
3万
查看次数

使用Reflection(DotNET)查找程序集中的所有命名空间

我有一个程序集(作为ReflectionOnly加载),我想找到这个程序集中的所有命名空间,所以我可以将它们转换为自动生成的源代码文件模板的"using"(VB中的"Imports")语句.

理想情况下,我只想将自己限制在顶级命名空间,而不是:

using System;
using System.Collections;
using System.Collections.Generic;
Run Code Online (Sandbox Code Playgroud)

你只会得到:

using System;
Run Code Online (Sandbox Code Playgroud)

我注意到System.Type类上有一个Namespace属性,但有没有更好的方法来收集程序集内的Namespaces,它不涉及迭代所有类型并剔除重复的命名空间字符串?

大卫,很有责任

c# vb.net reflection assemblies namespaces

20
推荐指数
1
解决办法
2万
查看次数

如何将多个.net程序集合并到一个程序集中?

我有一个大约10个程序集的.n​​et应用程序.把它们作为一个组件放在一起会很好.我该怎么做?

我想像Java应用程序的jar文件.

.net merge assemblies

20
推荐指数
3
解决办法
1万
查看次数

无法从GAC卸载程序集?

我无法从GAC卸载程序集(log4net.dll).它给出了以下错误.

"一个或多个申请需要组装".

但是,如果我使用ProcessExplorer搜索程序集,则不会出现任何问题?如何从GAC中删除此程序集?

.net assemblies gac gacutil

20
推荐指数
2
解决办法
2万
查看次数

两个相同类型的对象的InvalidCastException

我有这个奇怪的问题,我无法处理自己.设计为singleton的mvp-project模型中的类会导致InvalidCastException.在此代码行中找到错误源,其中反序列化对象被分配给类的实例变量:engineObject = (ENGINE)xSerializer.Deserialize(str);每当我尝试将一个UserControl添加到Form或不同的UC时,就会出现错误.我所有的UC都有一个特殊的演示者,可以访问上面提到的单例类的实例变量.这是我尝试在某处添加UC时得到的结果:

'System.TypeInitializationException:'MVP.Model.EngineData'的类型初始值设定项引发了异常.----> System.InvalidCastException:[A]引擎无法转换为[B]引擎.键入从A起源 'MVP.Model,版本= 1.0.0.0,文化=中立,公钥=空' 在位置上下文 'LoadNeither'"[...] \应用程序数据\漫游\微软\ VisualStudio的\ 9.0\ProjectAssemblies\uankw1hh01\MVP.Model.dll".B型在位置上下文 'LoadNeither' 从 'MVP.Model,版本= 1.0.0.0,文化=中立,公钥=空' 起源"[...] \应用程序数据\漫游\微软\ VisualStudio的\ 9.0\ProjectAssemblies\u_hge2de01\MVP.Model.dll" ...

所以我不知何故有两个程序集,它们不是从我的项目文件夹访问,而是从VS临时文件夹访问?我google了很多,只发现了这个:IronPython例外:[A]人不能被投射到[B]人.有一个解决方案,但首先它涉及IronPhyton,其次我不知道在我的项目中使用它?

如果你能在这里帮助我,那将是非常好的:-) thx

c# mvp user-controls assemblies exception

20
推荐指数
3
解决办法
2万
查看次数

C#:SHDocVw.WebBrowser_V1定义了什么程序集?

它被用在几个网站上,似乎都假设读者知道如何使这种类型可用,但我不知道.

示例网站,请参阅第一条评论:http: //blogs.artinsoft.net/mrojas/archive/2008/09/18/newwindow2-events-in-the-c-webbrowsercontrol.aspx

c# assemblies

20
推荐指数
3
解决办法
2万
查看次数

C# - 从汇编中获取资源字符串的最快方法

我真的不知道/有答案,知道resx使用c#中的程序集中的文件中的密钥来查找资源值.(或者我可能是无知的).

什么是最快的代码,我可以从资源文件中检索string valuesvalues使用密钥的方式,该资源文件作为资源嵌入到程序集中.我正在为资源文件中的异常存储友好消息,并希望在需要时使用它们.

为此目的是否存在静态类?

我可以使用开源成熟的项目吗?

c# performance resources assemblies resx

20
推荐指数
3
解决办法
7万
查看次数

并非所有程序集都从bin文件夹加载到AppDomain中

我有以下方法应该检索加载的本地(在bin文件夹)程序集的列表:

static IEnumerable<Assembly> GetLocalAssemblies()
    {
        Assembly callingAssembly = Assembly.GetCallingAssembly();
        string path = new Uri(Path.GetDirectoryName(callingAssembly.CodeBase)).AbsolutePath;

        var assemblies = AppDomain.CurrentDomain.GetAssemblies();
        return assemblies.Where(x => !x.IsDynamic && new Uri(x.CodeBase).AbsolutePath.Contains(path)).ToList();
    }  
Run Code Online (Sandbox Code Playgroud)

但是,程序集列表缺少我需要它的几个程序集.我需要的程序集是管理的(c#.net 4),在项目中引用,并存在于bin文件夹中.

为什么bin文件夹中存在的二进制文件在应用程序启动时不会进入AppDomain?

c# reflection assemblies

20
推荐指数
3
解决办法
1万
查看次数