我有一个像以下网站项目:
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) 我有一个使用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
).但是,第二个确实拥有它.
为什么该组件的大小和类有一些很大的不同?如果我使用第二个而不是第一个,那会没关系吗?
我在部署一个应用程序时遇到了一个奇怪的问题,该应用程序引用了一个用托管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) 我有一个PNG(即压缩图像),我想在我的程序集中包括(即应用程序).
怎么做?
附加信息:
我尝试在Visual Studio 2010中向我的程序集添加PNG资源:
但是这不起作用,因为Visual Studio将其转换为未压缩的位图:
除了我想添加一个PNG.
]=== 1MB file size ==>
]=== 8MB file size ==============================================================================================================================================>
Run Code Online (Sandbox Code Playgroud) .net resources visual-studio-2010 .net-assembly visual-studio
我有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版本号?
在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 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 …
我想知道,PCL究竟解决了什么?如果它只是限制我跨平台的类型,那么为什么微软只是通过IDE将它作为标准.NET库中的一个功能?
基本上,我可以轻松编译包含一些POCO对象的.NET库,并在我的Silverlight,WPF和Windows Store应用程序中引用该DLL,而无需重新编译或出现任何问题.是否有任何在PCL中有效的代码难以在标准.NET库中运行?
哦,我知道显然有一些东西可以在标准的.NET库中运行,我并不关心...我想我的问题是这样的:
是否有任何代码可以在可移植类库中编译,如果完全相同的代码在.NET库中,那么它将无法正常运行?
*.ni.dll.aux
找到的文件的格式(数据布局)是C:\Windows\assembly\NativeImages_v4.0.30319_64
什么?据我所知,这些是由...生成的辅助文件ngen.exe
.它们包含哪些数据?
我想发布一个MVC项目,我一直收到这个错误:
System.IO.FileNotFoundException:无法加载文件或程序集"Microsoft.Web.XmlTransform",Version = 1.4.0.0,Culture = neutral,PublicKeyToken = ...或其依赖项之一.该系统找不到指定的文件.
我搜索并尝试在SO或MSDN上找到的一些解决方案无济于事.我真的很想要一些建议.该项目之前已成功发布,但在尝试重新发布我的更新版本后,这个问题突然出现了.
.net-assembly ×10
.net ×8
c# ×7
asp.net ×3
.net-4.5 ×1
asp.net-mvc ×1
azure ×1
clr ×1
dependencies ×1
deployment ×1
format ×1
managed-c++ ×1
ngen ×1
resources ×1