标签: .net-assembly

为什么AppDomain.CurrentDomain.BaseDirectory在asp.net应用程序中不包含"bin"?

我有一个像以下网站项目:

namespace Web
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            lbResult.Text = PathTest.GetBasePath();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

该方法PathTest.GetBasePath()在另一个项目中定义,如:

namespace TestProject
{
    public class PathTest
    {
        public static string GetBasePath() 
        {
            return AppDomain.CurrentDomain.BaseDirectory;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么...\Web\在将TestProject程序集编译到bin文件夹时显示它(换句话说,它应该显示...\Web\bin在我的想法中).

如果我修改了方法,我现在遇到了麻烦:

namespace TestProject
{
    public class FileReader
    {
        private const string m_filePath = @"\File.config";
        public static string Read() 
        {
            FileStream fs = null;
            fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + m_filePath,FileMode.Open, …
Run Code Online (Sandbox Code Playgroud)

c# asp.net .net-assembly

25
推荐指数
3
解决办法
5万
查看次数

Reference Assemblies文件夹和具有相同版本的不同程序集

我有一个使用System.Runtime.Serialization程序集的项目.我正在使用该DataContractSerializer程序集中的类型,但我遇到了问题.有两个组件:

C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Runtime.Serialization.dll

C:\ WINDOWS\Microsoft.net \框架\ v4.0.30319\System.Runtime.Serialization.dll

它们都有相同的版本 - v4.0.30319.第一个有429kb大小,第二个有1037kb.我用反射器来查看类列表,第一个没有我需要的类(DataContractSerializerSettings).但是,第二个确实拥有它.

为什么该组件的大小和类有一些很大的不同?如果我使用第二个而不是第一个,那会没关系吗?

.net .net-assembly

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

System.IO.FileNotFoundException:部署应用程序时无法加载文件或程序集"X"或其依赖项之一

我在部署一个应用程序时遇到了一个奇怪的问题,该应用程序引用了一个用托管c ++编写的程序集.

我已经创建了一个程序集X,编译它并在一个名为Starter的exe文件中引用它.

Starter.exe在本地mashine上正常启动.但是,当我将启动器调试文件夹的所有内容复制到虚拟mashine并尝试在那里启动时,它会崩溃并出现以下异常:

Unhandled Exception: System.IO.FileNotFoundException: Could not load file or 
assembly 'X' or one of its dependencies. The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)

这对我没有任何意义,因为X与Starter.exe位于同一个文件夹中.

什么可能导致这个问题?

UPDATE

我已经在目标机器上检查了Reflector中的依赖项,并且能够找到所有这些文件的文件.

我还为所有项目将配置更改为x86/win32.

UPDATE

以下是Fusion Log的日志(位置:C:\ FusionLog\Default\Starter.exe\X,Version = 1.0.4538.22813,Culture = neutral,PublicKeyToken = null.HTM):

*** Assembly Binder Log Entry  (6/4/2012 @ 1:56:13 PM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\Documents and Settings\Administrator\Desktop\tmp\k;k\Starter.exe
--- A detailed error log …
Run Code Online (Sandbox Code Playgroud)

.net c# deployment managed-c++ .net-assembly

25
推荐指数
3
解决办法
13万
查看次数

如何在Visual Studio 2010中添加PNG资源?

我有一个PNG(即压缩图像),我想在我的程序集中包括(即应用程序).

怎么做?

附加信息:

我尝试在Visual Studio 2010中向我的程序集添加PNG资源:

在此输入图像描述

但是这不起作用,因为Visual Studio将其转换为未压缩的位图:

在此输入图像描述

除了我想添加一个PNG.

否则我的1MB应用程序变为8MB:

]=== 1MB file size ==>
]=== 8MB file size ==============================================================================================================================================>
Run Code Online (Sandbox Code Playgroud)

.net resources visual-studio-2010 .net-assembly visual-studio

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

如何检查程序集的版本(DLL)?

我有c#应用程序,当我进行更改时,我收到错误消息:

WindowsFormsApplication1.exe中发生了未处理的"System.TypeLoadException"类型异常

附加信息:无法
从程序集"TIProData,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null" 加载类型"TradeIdeas.TIProData.OddsMakerColumnConfiguration".

此消息表示dll(TIProData)的版本号为1.0.0.0.我认为有更新版本可用.如何判断机器上的dll版本号?

.net c# .net-assembly

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

什么是.NET程序集中的Fusion

在Suzanne Cook的博客中有这样的描述:

LoadFrom上下文:通常,如果用户为Fusion提供了一个用于查找程序集的路径(并且在Load上下文中找不到该路径上的程序集),那么它就在LoadFrom上下文中.可以通过路径加载各种方法:LoadFrom(),CreateInstanceFrom(),ExecuteAssembly(),使用代码库通过互操作加载程序集等.

同时,我发现了一个关于它的MSDN文章,但我真的不知道该融合苏珊是否谈论是相同的位置:http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.71) .aspx,但它似乎是一个日志查看器,所以我理解苏珊所说的是什么

Fusion是一种探测机制,它采用路径等,它探测Application Base codeBase,GAC等中的程序集,将它们加载到上下文中.

有人可以澄清一下吗?

.net c# .net-assembly

23
推荐指数
2
解决办法
5845
查看次数

"找到的程序集的清单定义与程序集引用不匹配"

我已经将.NET WebAPI应用程序(针对.NET 4.5.2编译并在本地运行)部署到Azure应用服务中.

抛出的错误是

无法加载文件或程序集'System.Web.Mvc,Version = 4.0.40804.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.

我已检查App服务bin目录中的System.Web.Mvc.dll 大小为505504字节 - 与我的本地System.Web.Mvc.dll大小相同,版本为4.0.40804.0,更改了2014-09 -25,在本地工作没有问题.我能说的唯一区别是我在本地安装了.NET 4.5.2,而不是像Azure那样安装4.6.1.

我的Web.config中的条目是

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="4.0.40804.0" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

但我已经尝试过了

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="4.0.0.0" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

这也不起作用.

如何为我的应用程序编辑该条目以查找System.Web.Mvc.dll?

作为参考,完整的错误消息是:

'/'应用程序中的服务器错误.

无法加载文件或程序集"System.Web.Mvc"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"System.Web.Mvc"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

程序集加载跟踪:以下信息有助于确定无法加载程序集"System.Web.Mvc"的原因.

警告:装配绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失.要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].

堆栈跟踪:

[FileLoadException:无法加载文件或程序集'System.Web.Mvc'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)]

[FileLoadException:无法加载文件或程序集'System.Web.Mvc,Version = 4.0.40804.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+0 System.Reflection.RuntimeAssembly .nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,Boolean throwOnFileNotFound,Boolean forIntrospection,Boolean suppressSecurityChecks)+36 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName …

c# asp.net asp.net-mvc azure .net-assembly

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

便携式类库实际上解决了什么?

我想知道,PCL究竟解决了什么?如果它只是限制我跨平台的类型,那么为什么微软只是通过IDE将它作为标准.NET库中的一个功能?

基本上,我可以轻松编译包含一些POCO对象的.NET库,并在我的Silverlight,WPF和Windows Store应用程序中引用该DLL,而无需重新编译或出现任何问题.是否有任何在PCL中有效的代码难以在标准.NET库中运行?


哦,我知道显然有一些东西可以在标准的.NET库中运行,我并不关心...我想我的问题是这样的:

是否有任何代码可以在可移植类库中编译,如果完全相同的代码在.NET库中,那么它将无法正常运行?

.net c# .net-assembly portable-class-library .net-4.5

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

`*.ni.dll.aux`文件的格式是什么?

*.ni.dll.aux找到的文件的格式(数据布局)是C:\Windows\assembly\NativeImages_v4.0.30319_64什么?据我所知,这些是由...生成的辅助文件ngen.exe.它们包含哪些数据?

.net format clr ngen .net-assembly

22
推荐指数
1
解决办法
951
查看次数

发布错误:无法加载文件或程序集"Microsoft.Web.XmlTransform",Version = 1.4.0.0,Culture = neutral等等或其依赖项之一

我想发布一个MVC项目,我一直收到这个错误:

System.IO.FileNotFoundException:无法加载文件或程序集"Microsoft.Web.XmlTransform",Version = 1.4.0.0,Culture = neutral,PublicKeyToken = ...或其依赖项之一.该系统找不到指定的文件.

我搜索并尝试在SO或MSDN上找到的一些解决方案无济于事.我真的很想要一些建议.该项目之前已成功发布,但在尝试重新发布我的更新版本后,这个问题突然出现了.

.net c# asp.net dependencies .net-assembly

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