Tag: .net assembly

我从哪里引用缺less的程序集(System.Net.Http.Formatting)?

在我的Visual Studio 2013 RC项目中,我收到了这个错误消息: “ types'System.Net.Http.Formatting.MediaTypeFormatter'是在未引用的程序集中定义的,必须添加对程序集”System.Net.Http.Formatting,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35' “ …在控制器中的"var response = "代码行上: public HttpResponseMessage PostDelivery(Delivery delivery) { delivery = repository.Add(delivery); var response = Request.CreateResponse<Delivery>(HttpStatusCode.Created, delivery); string uri = Url.Link("DefaultApi", new { id = delivery.Id }); response.Headers.Location = new Uri(uri); return response; } search我的硬盘上所需的程序集(“System.Net.Http.Formatting”),它显示了它存在的几个位置,但它们都在现有的项目中,如下所示: 当然有另一个位置System.Net.Http.Formatting.dll可以被引用! 但是哪里? UPDATE 试图按照这里的线索: http : […]

为什么ASP.NET MVC 4有这么多的NuGet包,哪些是真正重要的?

正如标题所说,为什么ASP.NET MVC 4项目有很多NuGet包? 整个框架现在分成几个包? 对于一个空的项目来说,哪些是真正重要的,哪些是网站,没有API等? UPDATE 为了澄清,我没有问题,除非你把一个基本的困惑计算在内。 我只是想知道为什么新的MVC 4项目默认安装了这么多的软件包? 一个空的项目有一整页的包。 互联网项目有三个完整的软件包页面。 我只是好奇,为什么这是因为我目前的MVC 3项目使用最多五个包。

了解一个csproj程序集引用

我正在使用VS2010,我试图通过文件引用从本地硬盘添加一些程序集到我的C#项目。 csproj文件,我发现有时文件引用显示为 <Reference Include="name"> 不过有时候看起来像 <Reference Include="name, Version=xxx, Culture=neutral, processorArchitecture=MSIL"> 什么可能导致差异? 受k3b的回答启发,我做了另一个testing。 我创build了一个新的类库项目。 添加文件参考。 “ 特性”窗格中的“ 特定版本 ”的初始值为False 。 csproj文件看起来像 <Reference Include="Name"> <HintPath>…</HintPath> </Reference> 将属性窗格中的特定版本更改为True 。 VS在Include属性中添加版本。 <Reference Include="Name, Version=…"> <HintPath>…</HintPath> </Reference> 将属性窗格中的特定版本更改为False 。 VS添加一个子元素SpecificVersion 。 <Reference Include="Name, Version=…"> <HintPath>…</HintPath> <SpecificVersion>False</SpecificVersion> </Reference> 所以看来这个规则是: 当包含属性中存在版本并且没有SpecificVersion子元素时,文件程序集configuration为特定版本 SpecificVersion子元素只附加值False 。 有一件事我还是不明白: 对于我的新testing项目,如果删除文件引用并将其重新添加回去,则会返回到缺省值为1的格式。 对于我现有的项目,如果我删除了文件引用并将其重新添加回来,我将回到第3点的格式。虽然这也意味着不使用特定版本,但我想知道为什么它不回到格式的第1点。

共享AssemblyInfo,用于整个解决scheme的统一版本控制

我读过这个技术: http : //blogs.msdn.com/b/jjameson/archive/2009/04/03/shared-assembly-info-in-visual-studio-projects.aspx 基本上,它意味着创build一个SharedAssemblyInfo.cs与有关程序集的版本信息,并将该文件作为链接添加到解决scheme的所有项目,所以实际文件只驻留在磁盘上的一个位置。 我的问题涉及两种情况: 现有的解决scheme,不使用这种机制:有没有办法轻松地将ShareAssemblyInfo添加到所有项目? (可以说我有50个项目的解决scheme)。 在创build新项目时,默认情况下会创build一个新的AssemblyInfo.cs。 不过,我想自动链接到SharedAssemblyInfo。 有没有解决scheme? 常用的做法是什么?

如何查看GAC中的文件夹和文件?

我想查看GAC中的文件夹和子文件夹。 也想知道关于GAC的添加和删​​除。 要安装,我们通过打开Visual Studio command prompt在命令提示符下编写这些行: – gacutil /i [assembly path] 但是要卸载,我们只需要: – gacutil /u [assembly name] 为什么?

我如何find一个特定的DLL的PublicKeyToken?

我需要在我的web.config文件中重新创build一个提供程序,如下所示: <membership defaultProvider="AspNetSqlMemProvider"> <providers> <clear/> <add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" name="AspNetSqlMemProvider" type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> </providers> </membership> 然而,我得到一个运行时错误,说这个程序集无法加载,我认为这是因为我有错误的PublicKeyToken。 我如何查找我的程序集的PublicKeyToken? 另外,我是否完全用这个错误的方式?

我怎样才能得到正在执行的程序集版本?

我正在尝试使用下面的代码在C#3.0中获得正在执行的程序集版本: var assemblyFullName = Assembly.GetExecutingAssembly().FullName; var version = assemblyFullName .Split(',')[1].Split('=')[1]; 还有另外一个适当的方法吗?

无法加载文件或程序集“Newtonsoft.Json”或其某个依赖项。 清单定义与程序集引用不匹配

search后尝试过的东西: 1)在Web.Config中对旧版本进行绑定: <dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" /> </dependentAssembly> 2)编辑我的.csproj文件,以确保只有一个牛顿软引用 <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath> <SpecificVersion>False</SpecificVersion> <Private>True</Private> </Reference> 3)在我的计算机上search每个Newtonsoft.Json.dll并删除每个非6.0.1版本并删除我的临时文件夹的内容 4)在nuget manager控制台中修复/重新安装软件包 它成功的build设,但得到错误,当去到网站。 编辑 好吧,然后我试图重新安装像每个nuget包,它似乎已经加回到4.5版本的newtonsoft.json.dll,但我得到相同的错误。 我的项目的目标freamework是.NET 4.5.1,这里是我现在得到的堆栈跟踪: “/”应用程序中的服务器错误。 无法加载文件或程序集“Newtonsoft.Json”或它的一个依赖项。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040) 说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。 exception详细信息:System.IO.FileLoadException:无法加载文件或程序集“Newtonsoft.Json”或它的一个依赖项。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040) 源错误: 在执行当前Web请求期间生成未处理的exception。 有关exception的来源和位置的信息可以使用下面的exception堆栈跟踪来标识。 程序集加载跟踪:以下信息可以帮助确定程序集“Newtonsoft.Json”无法加载的原因。 ===预绑定状态信息===日志:DisplayName = Newtonsoft.Json(部分)警告:为程序集提供部分绑定信息:警告:程序集名称:Newtonsoft.Json | 域ID:2 WRN:仅提供部分程序集显示名称时发生部分绑定。 警告:这可能会导致活页夹加载不正确的程序集。 警告:build议为程序集提供完全指定的文本标识,WRN:由简单名称,版本,文化和公钥标记组成。 警告:有关此问题的更多信息和常见解决方法,请参阅白皮书http://go.microsoft.com/fwlink/?LinkId=109270 。 […]

维护程序集版本号的最佳实践/指导

我正在寻找关于如何pipe理.NET程序集的三个不同的程序集版本号的指针,build议,甚至听写。 产品版本是最简单的,因为这似乎通常会由业务决定。 然后,文件版本似乎是用于部署之间的版本控制,其中实际汇编版本仅在出货时使用。 现在我只是寻找一个简单的方法来标记一个组件的testing和维护版本,而不依赖于这个版本,所以我正在考虑在文件版本上自动递增构build版本和修订版本号,并且为了最终版本,复制当前版本文件版本到程序集版本。 该产品在生产中使用,但仍在开发 – 你知道 – 这些小公司之一,没有改变控制基础设施的情况。

堆栈的目的是什么? 我们为什么需要它?

所以我现在正在学习MSIL来学习debugging我的C#.NET应用程序。 我一直在想: 堆栈的目的是什么? 只是把我的问题的背景: 为什么有从内存转移到堆栈或“加载”? 另一方面,为什么有从堆栈转移到内存或“存储”? 为什么不把它们都放在内存中? 是因为它快吗? 是因为它是基于RAM的吗? 为了效率? 我正在努力把握这一点,以帮助我更深入地理解CIL代码。