我在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文件夹.
任何的想法?
我有一个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#开发一个能够动态加载dll的应用程序.这些dll代表我的"应用程序".我想限制这些应用程序的权限.例如(我的一个主要问题)阻止访问光盘.因为我的应用程序正在使用我的主应用程序域的功能和实例,所以我不希望它们在单独的沙盒应用程序域中运行.
这还有可能吗?
.NET Core中*deps.json文件的用途是什么?在此类文件中存储引用而不在程序集清单中存储引用的原因是什么(如在独立的.NET Framework中)?
使用Ildasm我检查了程序集清单在dotnet构建命令之后不包含这些依赖项的条目.
但是在dotnet发布命令之后它有条目.
我试图在GAC中安装程序集
new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll"); 但是我找不到安装在c:\ windows\assembly\gac_msil文件夹中.我也没有收到securityexception.谁能帮我
我需要有关如何在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'的引用.
谢谢你的帮助
问题
转到特定页面时出错(在本地调试中):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) 我有一个第三方库提供System.Collections.Generic.IReadOnlyCollection类型,以便与.NET 4.0应用程序兼容.但是,如果在.NET 4.5应用程序中链接此库,则会收到错误
解决这类冲突的一种方法是为要使用的库指定extern别名,并使用此别名消除我们引用的程序集的歧义.指定extern别名包括单击项目的References文件夹中的库引用,按F4显示属性网格,然后在"Aliases"字段中指定另一个名称.但是,问题是mscorlib没有出现在Visual Studio的参考列表中.尝试手动添加会导致错误
因此,考虑到上述所有问题,问题是:如何为mscorlib指定外部别名,因为我无法看到甚至没有将其添加到项目的引用列表中?
我试图在运行时使用反射创建方法的副本.
我有以下代码.
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: …
我有2个申请.示例App1和App2运行时,正常App1将显示程序集可执行位置.但是当我从App2调用App1时,它返回App2启动位置.
那么,当从App2调用App1时,如何让App1启动路径?
.net-assembly ×10
c# ×10
.net ×4
gac ×2
reference ×2
.net-core ×1
executable ×1
il ×1
ildasm ×1
linq ×1
permissions ×1
reflection ×1
web-config ×1