标签: .net-assembly

为什么我无法访问C:\ WINDOWS\assembly\GAC文件夹?

我在Solution/References下找到了Microsoft.Office> interop.Excel的路径

C:\ Windows \组件\ GAC \的Microsoft.Office.Interop.Excel\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll

但是,我的C:\ WINDOWS\assembly\GAC上根本不存在这样的文件.此外,C:\ WINDOWS\assembly下没有GAC文件夹.

任何的想法?

c# gac reference .net-assembly

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

装配绑定错误:绑定结果:hr = 0x80070002.该系统找不到指定的文件

我有一个Visual Studio 2010解决方案,其中包含一个类库(ProjectA)和两个Sharepoint项目(ProjectB和ProjectC).依赖顺序是ProjectB引用,ProejctA和ProjectC引用ProjectA和ProjectB.

在一台特定的开发机器上,我在尝试构建ProjectC时遇到以下错误:

编译失败.无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息.

在查看融合日志时,我注意到以下错误:

*装配活页夹日志条目(14/06/2012 @ 09:38:32)*

操作失败.

绑定结果:hr = 0x80070002.该系统找不到指定的文件.

装配管理器从:C:\ Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll加载

在可执行文件C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe下运行

---详细的错误日志如下.

===预绑定状态信息===日志:用户= DOMAIN \用户名

日志:DisplayName = ProjectB,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = aaaaaaaaaaaaaaa,processorArchitecture = MSIL(完全指定)

日志:Appbase = file:/// C:/ Program Files(x86)/ Microsoft Visual Studio 10.0/Common7/IDE /

日志:初始PrivatePath = NULL

日志:动态Base = NULL

日志:缓存基数= NULL

日志:AppName = devenv.exe

调用程序集:(未知).

日志:此绑定在默认加载上下文中启动.

日志:使用应用程序配置文件:C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.Config

日志:使用主机配置文件:

日志:使用C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config中的计算机配置文件.

日志:政策后参考:ProjectB,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = aaaaaaaaaaaaaaa,processorArchitecture = MSIL …

c# assembly-resolution .net-assembly

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

在c#中限制程序集的权限

我正在用C#开发一个能够动态加载dll的应用程序.这些dll代表我的"应用程序".我想限制这些应用程序的权限.例如(我的一个主要问题)阻止访问光盘.因为我的应用程序正在使用我的主应用程序域的功能和实例,所以我不希望它们在单独的沙盒应用程序域中运行.

这还有可能吗?

c# permissions .net-assembly

9
推荐指数
1
解决办法
1386
查看次数

.NET Core中的*deps.json文件

.NET Core中*deps.json文件的用途是什么?在此类文件中存储引用而不在程序集清单中存储引用的原因是什么(如在独立的.NET Framework中)?

使用Ildasm我检查了程序集清单在dotnet构建命令之后不包含这些依赖项的条目.

但是在dotnet发布命令之后它有条目.

.net c# ildasm .net-assembly .net-core

9
推荐指数
1
解决办法
5740
查看次数

将程序集安装到GAC中

我试图在GAC中安装程序集 new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll"); 但是我找不到安装在c:\ windows\assembly\gac_msil文件夹中.我也没有收到securityexception.谁能帮我

.net c# gac .net-assembly

8
推荐指数
1
解决办法
6005
查看次数

如何在vs2012中添加对程序集的引用

我需要有关如何在C#代码中正确添加程序集的帮助.

我启动一个空白项目并尝试运行下面的简单代码.但是引用了错误.我知道默认情况下system.dll包含在references文件夹下.

那为什么还要抱怨"'System.Configuration没有被引用'?" 我错过了一些手动步骤吗?如果是这样我该怎么办?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net.Configuration;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequestElement ae = new HttpWebRequestElement();
            ae.UseUnsafeHeaderParsing = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

"System.Configuration.ConfigurationElement"类型在未引用的程序集中定义.您必须添加对程序集'System.Configuration,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用.

谢谢你的帮助

.net c# reference .net-assembly visual-studio-2012

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

"System.Data.Linq.DataContext"类型在未引用的程序集中定义

问题

转到特定页面时出错(在本地调试中):CS0012:类型'System.Data.Linq.DataContext'在未引用的程序集中定义.您必须添加对程序集'System.Data.Linq,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.

以下是错误消息中引用的代码行:

第28行:
第29行:
第30行:公共类_Page_Views_blah_granny_cshtml:System.Web.Mvc.WebViewPage {
第31行:
第32行:#line隐藏

所有其他页面都很有效 - 这只在特别是访问一个页面时才会发生.该引用适用于所有其他页面.据我所知,这不是引用的问题.

我花了很多时间来研究这个问题.

我发现的所有答案建议转到web.config并在system.web> configuration> assemblies中为linq添加程序集引用.我没有列出组件,我怀疑这是旧版本的更多.无论如何,我做到了.它给了我另一个错误,说它不知道如何处理程序集.

我删除了system.data.linq并再次添加它.

我重新启动了VS和我的电脑.

我的代码 - 由VS默认生成 - 具有System.Linq.

背景 - 这是如何开始的:

该应用程序是MVC 4,C#.

我在DataContext中创建了一个新类,添加了一个新的控制器,并创建了一个强类型视图.

这是一些非常相似的代码(可能不需要,但以防万一).

两个班:

public class granny { 
            public string data { get; set; }
            public string criteria { get; set; }
}

public List<granny> getGranny() {
    var a = from x in grannytable
            join dx in anothertable
            on x.criteria equals dx.criteria
            select new granny {
                data …
Run Code Online (Sandbox Code Playgroud)

c# linq web-config .net-assembly asp.net-mvc-4

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

如何为mscorlib创建一个extern别名

我有一个第三方库提供System.Collections.Generic.IReadOnlyCollection类型,以便与.NET 4.0应用程序兼容.但是,如果在.NET 4.5应用程序中链接此库,则会收到错误

  • 类型'System.Collections.Generic.IReadOnlyCollection'存在于'd:\ 3rdParty \net40\3rdPartyLib.dll'和'c:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\mscorlib.dll中"

解决这类冲突的一种方法是为要使用的库指定extern别名,并使用此别名消除我们引用的程序集的歧义.指定extern别名包括单击项目的References文件夹中的库引用,按F4显示属性网格,然后在"Aliases"字段中指定另一个名称.但是,问题是mscorlib没有出现在Visual Studio的参考列表中.尝试手动添加会导致错误

  • 无法添加对"mscorlib"的引用.构建系统已自动引用此组件.

因此,考虑到上述所有问题,问题是:如何为mscorlib指定外部别名,因为我无法看到甚至没有将其添加到项目的引用列表中?

.net c# .net-assembly visual-studio

8
推荐指数
1
解决办法
1241
查看次数

从IL创建方法的副本

我试图在运行时使用反射创建方法的副本.

我有以下代码.

public static R CopyMethod<T, R>(Func<T, R> f, T t)
{
    AppDomain currentDom = Thread.GetDomain();
    AssemblyName asm = new AssemblyName();
    asm.Name = "DynamicAssembly";
    AssemblyBuilder abl = currentDom.DefineDynamicAssembly(asm, AssemblyBuilderAccess.Run);
    ModuleBuilder mbl = abl.DefineDynamicModule("Module");
    TypeBuilder tbl = mbl.DefineType("Type");
    var info = f.GetMethodInfo();
    MethodBuilder mtbl = tbl.DefineMethod(info.Name, info.Attributes, info.CallingConvention, info.ReturnType, info.GetParameters().Select(x => x.ParameterType).ToArray());

    byte[] il = f.Method.GetMethodBody().GetILAsByteArray();

    mtbl.CreateMethodBody(il, il.Length);
    Type type = tbl.CreateType();
    Func<T, R> method = type.GetMethod(info.Name).CreateDelegate(typeof(Func<T, R>)) as Func<T, R>;
    return method(t);
}
Run Code Online (Sandbox Code Playgroud)

最后一行抛出一条带有消息的异常:

Common Language Runtime检测到无效程序.

还有另一种方法吗?我希望能够获得方法的解析树而不是直接使用IL.

编辑1: …

c# reflection il reflection.emit .net-assembly

8
推荐指数
1
解决办法
1258
查看次数

c#get程序集可执行目录

我有2个申请.示例App1和App2运行时,正常App1将显示程序集可执行位置.但是当我从App2调用App1时,它返回App2启动位置.

那么,当从App2调用App1时,如何让App1启动路径?

c# executable .net-assembly

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