标签: strongname

无法将程序集安装到缓存中?

我试图在Visual Studio 2010命令提示符上向缓存添加程序集.我收到此错误"将程序集添加到缓存失败:尝试安装没有强名称的程序集".我从名为ListTasks2的WCF服务应用程序添加ListTasks2.dll程序集.我从来没有遇到类似命名的项目,所以为什么现在提出一个问题呢?

注意:我尝试在Visual Studio中签名它仍然无法正常工作.我想知道这可能是一个许可问题.我使用了不同的用户凭据,并且能够添加程序集.问题是我加载了VS解决方案,该项目签署了程序集.我应该创建一个密钥对吗?

c# wcf strongname gac .net-assembly

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

正确的方式来签署.net核心组件

我正在尝试签署一个.net核心库,我只是不确定我是否正确地做了一切

1)使用VS Command Promp我打电话 sn -k mykey.snk

2)复制mykey.snk到myproject文件夹

3)project.json添加密钥文件

"frameworks": {
    "netstandard1.6": {}
  },
  "buildOptions": {
    "outputName": "MyLib",
    "keyFile": "mykey.snk"
  }
Run Code Online (Sandbox Code Playgroud)

这是正确的,库(dll)是否可以在.net核心和完整.net 4.6应用程序上使用?

.net c# strongname .net-core

7
推荐指数
1
解决办法
4587
查看次数

如何签署由ILMerge操作生成的程序集?

我设法使用ILMerge将我项目中的所有程序集合并到一个程序集中,但问题是似乎没有办法签署合并的程序集.

是否有某种命令行选项或命令可以运行,这可以让我为ILMerge生成的合并程序集添加强名称?

.net ilmerge strongname signing

6
推荐指数
2
解决办法
2626
查看次数

您如何以编程方式(重新)签署具有强名称的.NET程序集?

除了调用命令行为程序集添加强名称之外,是否有任何API允许您在删除其强名称后重新签名程序集?

.net strongname

6
推荐指数
1
解决办法
3650
查看次数

是否可以将.net程序集注册为COM而无需强命名称?

好的,所以我知道如何强力命名一个程序集并重新计算它,所以我可以从一个ASP页面访问它.

通过强有力的命名,它可以放在GAC中,因此可以从ASP页面轻松访问.

有可能以某种方式注册程序集而不用强名称签名,仍然能够以某种方式从ASP页面访问它吗?我想这样做是因为我们希望这个.net程序集能够引用非签名程序集,而不是在更新其引用的程序集时依赖.

.net com strongname

6
推荐指数
1
解决办法
3538
查看次数

尝试使用MoQ时出现StrongNameKeyPair问题

我正在尝试为单元测试创​​建一个模拟HttpContextBase.

var fakePrinciple = new GenericPrincipal(
           new GenericIdentity(userId), 
           rolesList.ToArray());            
var mockHttpContext = new Mock<HttpContextBase>();
mockHttpContext.Setup(t => t.User).Returns(fakePrinciple);
HttpContextBase mockedContext = mockHttpContext.Object;
Run Code Online (Sandbox Code Playgroud)

单元测试在最后一个语句中失败

抛出异常:System.ArgumentException:无法获取StrongNameKeyPair的公钥.

System.Reflection.StrongNameKeyPair.nGetPublicKey(Boolean exported,Byte [] array,String container)System.Reflection.StrongNameKeyPair.get_PublicKey()System.AppDomain.InternalDefineDynamicAssembly(AssemblyName name,AssemblyBuilderAccess access,String dir,Evidence evidence,PermissionSet requiredPermissions,PermissionSet optionalPermissions,PermissionSet rejectedPermissions,StackCrawlMark&stackMark,IEnumerable`1 unsafeAssemblyAttributes)System.AppDomain.DefineDynamicAssembly(AssemblyName name,AssemblyBuilderAccess access)Castle.DynamicProxy.ModuleScope.CreateModule(Boolean signStrongName)Castle.DynamicProxy.ModuleScope.ObtainDynamicModuleWithStrongName()Castle.DynamicProxy.ModuleScope .ObtainDynamicModule(Boolean isStrongNamed)Castle.DynamicProxy.Generators.Emitters.ClassEmitter.CreateTypeBuilder(ModuleScope modulescope,String name,Type(blah blah snip)

我用谷歌搜索,这里的建议似乎不起作用(更改RSA文件夹安全设置等)http://groups.google.com.br/group/castle-project-users/browse_thread/thread/85685cf32a795158

我是正确地认为,因为HttpContextBase是的一部分System.Web.Abstraction,这是一个签名的程序集.Moq实际上会尝试签署动态组件,但失败了吗?

strongname exception moq httpcontext argumentexception

6
推荐指数
1
解决办法
3555
查看次数

如何使用强名称进行签名可以防止伪造一组程序集?

使用强名称(存储在.snk文件中的密钥对)进行签名(以及其他用途)旨在防止伪造组件.

例如:我运送我的程序集用强名称签名,然后其他一些开发人员使用我的程序集,所以他的程序集现在包含对我的引用,提到我的密钥对的公钥.一些用户安装了开发人员程序集和我的程序集,并愉快地使用该开发人员的代码.如果其他人试图生成一个看起来像我的版本的程序集,并说服用户说它是"值得安装的更新",那么伪装配将无法加载,因为我控制了我的密钥对,并且伪造的程序集没有使用相同的密钥对签名.好的,很酷.

但是什么阻止了恶意方伪造我的程序集和其他开发人员的依赖程序集并"运送"它们两者?他们抓住我的组件和开发人员的组件,篡改两者,用任何键签署我的组件的伪造版本,然后在依赖组件的伪造版本中添加对它的引用,签名也然后发送它们.我的意思是恶意"运输"两个组件不应该比"装运"一个组件更难.

如何使用强名称进行签名可以防止伪造多个程序集?

.net strongname assemblies snk

6
推荐指数
1
解决办法
2072
查看次数

WF自定义SQL跟踪服务已停止为旧工作流程工作?

我有一个已经运行一段时间的自定义跟踪服务,现在有超过1500个实时工作流程,我现在正在对工作流进行版本控制,以便我可以发布一些更改请求.

不幸的是,系统最初并没有部署强类型程序集,因此我正在对这个混乱进行排序.

我必须使用自定义SerializationBinder的混合来将PublicKeyToken = null转换为我的新PublicKeyToken,并使用AppDomain_AssemblyResolve委托来帮助将主机指向现在强类型的程序集 - 这里引用.

我还必须替换默认SqlTrackingService附带的[Type]表中相关行的内容来引用新的PublicKeyToken,所以:

some.namespace.foobar, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null 
Run Code Online (Sandbox Code Playgroud)

替换为:

some.namespace.foobar, Version=1.0.0.0, Culture=neutral, PublicKeyToken=123456789acb
Run Code Online (Sandbox Code Playgroud)

我似乎取得了很好的进展,但是当我转换状态机工作流程时,我作为服务添加的自定义跟踪服务不再针对1.0.0.0版本的工作流程,而是适用于新创建的2.0.0.0版工作流程.

注意:默认的SqlTrackingService在两个版本的工作流上仍然正常运行,这只是现有持久工作流上的自定义跟踪服务的问题.

自定义跟踪服务始终通过app.config添加,如下所示:

<Services>
       ...other services here...
      <add type="some.namespace.ActiveStateTrackingService, some.namespace.extensions" assembly="uk.gov.gsi.cma.extensions" />
</Services>
Run Code Online (Sandbox Code Playgroud)

关于我需要改变什么以使其适用于现有工作流程的任何想法?

根据要求,这里是自定义跟踪服务,虽然问题是主机"绑定"自定义跟踪服务,而不是跟踪服务本身 - 我知道这是因为在没有触发自定义跟踪服务的情况下,没有任何方法,包括构造函数被调用.

  public class ActiveStateTrackingService : TrackingService
{
    protected override TrackingProfile GetProfile(Guid workflowInstanceId)
    {
        return GetDefaultProfile();
    }

    protected override TrackingProfile GetProfile(Type workflowType, Version profileVersionId)
    {
        return GetDefaultProfile();
    }

    protected override TrackingChannel GetTrackingChannel(TrackingParameters parameters)
    {
        return new ActiveStateTrackingChannel(parameters);
    }

    protected override bool TryGetProfile(Type workflowType, out TrackingProfile profile)
    { …
Run Code Online (Sandbox Code Playgroud)

serialization strongname assemblies workflow-foundation

6
推荐指数
1
解决办法
293
查看次数

向外部DLL添加强名称/签名?

我们正在签署我们的库,但我们的一个外部依赖项本身没有签名,给我们以下错误:

Referenced assembly 'ManyConsole' does not have a strong name

我们ManyConsole通过Nuget 得到了一个包(一个伟大的BTW!),但是我们签了一个非Nuget孤儿.事实上,我们可以使用与我们自己的应用程序相同的密钥对其进行签名,但目前尚不清楚我们如何签署"外部"DLL.

.net c# strongname

6
推荐指数
1
解决办法
1761
查看次数

当我必须手动关闭旁路功能时,为什么要使用强名称程序集?

Microsoft Code Analysis鼓励我强烈命名所有程序集.但根据微软的说法,我必须手动禁用它们被检查的"旁路功能".

因此,自.NET Framework 3.5版Service Pack 1强名称未经过验证.

为什么我仍然要用强名称签署我的集会?

谢谢!斯特凡

.net strongname

6
推荐指数
1
解决办法
604
查看次数