我正在寻找关于命名程序集和版本化它们的一些好方法.您多久递增一次主要版本或次要版本?
在某些情况下,我看到版本从1.0版本直接发布到3.0版本.在其他情况下,它似乎停留在版本1.0.2.xxxx.
这将用于整个公司的多个项目中使用的共享程序集.期待一些良好的投入.
Assembly和DLL有什么区别?在将代码发送到远程客户端时,是应该发送DLL文件还是应该发送程序集(当两者之间有直接TCP连接时)?
我是一名开始为Android开发Java开发的.Net开发人员,想知道是否正确考虑像.Net程序集这样的Java软件包.
我正在编写一个工具来报告有关在我的客户端系统中的环境和区域部署的.NET应用程序的信息.
我想阅读这些程序集中的程序集属性的值.
这可以使用Assembly.ReflectionOnlyLoad,但是即使这种方法也可以保持装配.这里的问题是我无法从不同的路径加载两个具有相同名称的程序集,因此我无法比较在不同系统中部署的相同应用程序.
在这一点上,我假设解决方案将涉及使用临时AppDomains.
有人可以详细说明如何将程序集加载到另一个程序集中AppDomain,从中读取属性然后卸载AppDomain?
这需要适用于文件系统上的程序集以及URL地址上的程序集.
是否可以在加载程序集时运行某些代码,而无需在加载代码中执行任何特定操作?我正在寻找的就像一个类型的静态构造函数.
例如:
程序集A不知道程序集B,但B确实知道A.如果加载B,程序集A需要知道关于B的某些事情.当程序集B由运行时加载(引用或显式)时,我想要执行一段调用程序集A中的方法的代码(静态方法或属性).
此问题的根本原因是序列化A中的类型时遇到的未知类型,该类型包含B中的类型,这些类型在编译时未知,因为使用了接口.
在.NET C#工具的构建过程中,我一直在使用ILMerge将程序集合并到一个exe中.
我最近添加了一个新的类库,现在ILMerge失败了.我记得要告诉它合并新的DLL!
它现在给我这个错误,我真的不明白:
ILMerge.Merge:程序集"DataObjects"未正确合并.它仍然在目标程序集中列为外部引用.
我使用"项目"引用完成的所有程序集引用,并且它在过去没有失败.
任何人都可以为我解释这个错误,或建议一个解决方法吗?
无论出于何种原因,我似乎无法获得引用程序集中的类型列表.不仅如此,我甚至无法看到这个引用的程序集.
我试过了AppDomain.CurrentDomain.GetAssemblies(),但它只返回已经加载到内存中的程序集.
我试过Assembly.GetExecutingAssembly().GetReferencedAssemblies(),但这只是返回mscorlib.
我错过了什么?
当A针对.NET 3.5而B针对.NET 2.0时,Visual Studio 2008确实允许您A从程序集引用程序集B.
Visual Studio 2010不再允许这样做.完整的问题在MSDN上描述:
您可以创建引用面向不同.NET Framework版本的项目或程序集的应用程序.例如,如果创建面向.NET Framework 4 Client Profile的应用程序,则该项目可以引用面向.NET Framework 2.0版的程序集.但是,如果创建的项目面向早期版本的.NET Framework,则无法将该项目中的引用设置为面向.NET Framework 4 Client Profile或.NET Framework 4的项目或程序集.要消除错误,请确保应用程序所针对的配置文件与应用程序引用的项目或程序集所针对的配置文件兼容.
有什么方法可以让VS2010在这方面表现得像VS2008(即允许引用针对更高框架版本的程序集)?
我知道VS 2010行为背后的原因以及我需要注意的部署注意事项,无需重复.
确切的错误是:
警告MSB3268:无法解析主要引用"xxx.dll",因为它对框架程序集"System.Core,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089"具有间接依赖性,无法在目前有针对性的框架." .NETFramework,版本= V2.0" .要解决此问题,请删除引用"xxx.dll"或将应用程序重新定位到包含"System.Core,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089"的框架版本.
如果A引用程序集B 1.1和C,而C引用B 1.2,那么如何避免程序集冲突?
我确实认为C的引用会被封装掉并且不会引起任何问题,但是看起来所有的dll都被复制到了bin,这就是问题发生的地方.
我理解这两种方法是使用GAC还是汇编绑定?GAC对我来说似乎不是最好的方法,因为我不喜欢假设dll会在那里,我更喜欢在我的解决方案中引用lib目录中的dll.
如果程序集绑定对我来说似乎不健壮,那么如果程序集的某个版本具有另一个版本的功能,那么这不会产生问题吗?
在我的情况下,因为我正在使用第三方dll使用旧版本的nHibernate,而不是我自己使用.
assemblies ×10
.net ×7
c# ×5
reference ×2
versioning ×2
appdomain ×1
dll ×1
gac ×1
ilmerge ×1
java ×1
package ×1
reflection ×1
wcf ×1