就像卡尔在这里的问题一样,我想问你(因为我自己找不到它:()如果通过删除非静态或动态(例如通过反射)的汇编引用有任何好处.
我有一个 Visual Studio 2010 项目,它发布了一个名为myAssembly.ddl. 然后我想参考myAssembly.dll现有的 vs 2008 项目。如果我尝试加载引用,它旁边会出现一个黄色感叹号,表明该程序集未加载。但是,在此过程中我没有收到任何错误消息。显然,如果我尝试在代码中导入名称空间,它不会编译。
转换myAssembly.dll为 .net 版本 3.5 没有帮助。将程序集复制到不同的目录并从那里引用它也不起作用。
有任何想法吗?
.net assemblies visual-studio-2010 visual-studio-2008 visual-studio
MSDN文档通常不指定命名空间所在的程序集,因此没有简单的方法来添加必要的程序集引用.
注意:我使用的是MonoDevelop,因此右键单击,解决不是一个选项.
我在动态加载程序集时遇到 C++/CLI 异常,该程序集本身使用Assembly.Load. 它成功加载 DLL 程序集,但无法加载 EXE 程序集并生成以下异常:
TestManager.dll 中发生“System.IO.FileLoadException”类型的未处理异常
无法加载文件或程序集“testAssembly,Version=1.0.3836.39802,Culture=neutral,PublicKeyToken=null”或其依赖项之一。尝试使用修复程序加载无法验证的可执行文件(具有超过 2 个部分或 TLS 部分的 IAT。)
HRESULT 异常:0x80131019
TestManager.dll 本身是一个托管 dll,并在 CLI 中加载到另一个 CLR 进程中,并尝试将 EXE 程序集作为单独的进程加载,但失败并生成异常。
这可能是由于使用混合模式造成的。
嗨,我想弄清楚如何确保提供的 DLL 是正确的。原因是我们的分布式解决方案是由许多小 DLL 构建的,每个 DLL 都包含应用程序的某些部分,有时我们会推出其中一些的新版本。
它不是“更新问题”,而是快乐 - 我们如何检查:
它是正确的二进制/汇编
客户/客户篡改了文件,并可能将其替换为具有类似功能的同名之一以返回错误值?
多种原因
这可以用于版权保护/许可测试或其他重要的验证问题,所以我想弄清楚 MD5 校验和 + 某种组装信息是否足够?(如果是这样,如何访问程序集详细信息或类似信息?)
当然,当您可以反编译 .NET DLL 时,没有什么是故障安全的,但正是因此我们要确保有人不只是反编译我们的函数列表,然后在那里编写我们“哦,如此重要”的 DLL 的替代 DLL。
我们的原因是调试/支持所需的麻烦数量,当我们遇到因错误或目的而破坏这些的客户时(我们不关心原因,我们只是试图防止大多数可能的错误)。
自上周以来,我尝试在谷歌上搜索答案,但一无所获。也许我只是在用不正确的关键词搜索...
基本上,我们有一个正在运行的 WCF 服务,然后我们有一个单独的 dll,其中包含另一个 ServiceContract。我们想知道是否可以在当前运行的服务中公开单独的 dll,如果可以,如何?
我们对 WCF 还是个新手,所以如果这是一个愚蠢的问题,请原谅。:(
我们正在使用 .NET 3.5 SP1 和 C#。
问候
编辑:我们想将我们的服务分成“模块”。所以服务实现(方法等)和契约(接口)都在单独的库中。因此,假设您有一个名为“客户端”的模块。我们希望与客户端相关的所有内容都位于同一个单独的库 (DLL) 中,而不是从多个接口继承的一个大基类。这是一项庞大的服务,我们需要多个开发人员同时处理同一服务的不同部分。这是我被指示要弄清楚的,但如果可以完成,那么它就不能。我希望这更有意义?
我正在使用Visual Studio 2010并在C#中创建Windows窗体.昨天,开发进展顺利,我正在努力将访问数据库连接到我的数据网格.它工作了好几次,但是当我建立一个新的连接并尝试再次运行它(F5)时,我遇到了大量的错误,所以通过删除(和撤消)我的数据源来缩小它,并且错误仍然存在.就是这个...
警告1'C:\ Users\Wilson Kao\documents\visual studio 2010\Projects\Wincent Warehouse Management Studios\Wincent Warehouse Management Studios\Form1.Designer.cs'类型'Wincent_Warehouse_Management_Studios.Form1'与导入类型'Wincent_Warehouse_Management_Studios冲突.Form1'
警告7两个或多个程序集具有相同的标识'Wincent Warehouse Management Studios,Version = 1.0.0.0,Culture = neutral,ProcessorArchitecture = x86'.Wincent仓库管理工作室
警告8两个或多个文件具有相同的目标路径'C:\ Users\Wilson Kao\documents\visual studio 2010\Projects\Wincent Warehouse Management Studios\Wincent Warehouse Management Studios\bin\Debug\Wincent Warehouse Management Studios.exe'.Wincent仓库管理工作室
在警告之后,它给了我这个错误......
无可用源没有为任何堆栈帧加载符号.无法显示源代码
我可以看到问题,但我不太确定如何解决它...我知道我的程序在某处(而不是我自己的代码)我包含的东西导致我的程序冲突.所以我尝试的是我去了bin/debug文件夹并删除了其中的所有内容......并且它有效.但是,在该目录中的文件被补充后,我又遇到了同样的问题.我迫切需要帮助,任何形式的线索将会非常感激!谢谢!:)
我有一个关于名为 Action 的类型的名称解析的问题。虽然该项目处于早期状态并且所有内容都在同一个项目中声明,但编译器始终更喜欢我自己的类。然而,由于必须将项目分成不同的程序集(即 ProjectName.Common、ProjectName.Engine 等),因此 System.Action 和 ProjectName.Common.Action 之间出现了命名冲突。
我发现我可以在任何项目文件的命名空间声明内显式导入项目内部命名空间,而系统仍然导入到 IDE 最初创建的全局范围中。事实上,这可行,但看起来不太优雅。有没有更好的方法来解决这个问题?重命名我的 Action 类并不是一个真正可以接受的解决方案,因为它是一个非常常见的域名,而不是像 Math 等特殊的东西。
代码示例:
using System;
...
namespace ProjectName.Engine {
using ProjectName.Common;
class SomeClass {
private Action action;
...
}
}
Run Code Online (Sandbox Code Playgroud)
也许有人知道解决此类命名冲突的秘诀......
我有一个简单的挑战.我动态地需要在C#中找出具有特定属性的所有方法.我将从另一个应用程序动态加载程序集,需要找出确切的方法.程序集如下所示:
Base.dll:
Class Base
{
[testmethod]
public void method1()
...
}
Run Code Online (Sandbox Code Playgroud)
Derived.dll:
Class Derived:Base
{
[testmethod]
public void method2()
}
Run Code Online (Sandbox Code Playgroud)
现在在第3个应用程序中,我动态地想加载上面提到的dll并找出testmethods.
如果我加载Base.dll,我需要获得testmethod1.如果我加载Drived.dll,我应该得到testmethod1和testmethod2.
我在网上找到了一些帮助我动态加载dll的代码:
List<Assembly> a = new List<Assembly>();
string bin = @"Bin-Folder";
DirectoryInfo oDirectoryInfo = new DirectoryInfo(bin);
//Check the directory exists
if (oDirectoryInfo.Exists)
{
//Foreach Assembly with dll as the extension
foreach (FileInfo oFileInfo in oDirectoryInfo.GetFiles("*.dll", SearchOption.AllDirectories))
{
Assembly tempAssembly = null;
//Before loading the assembly, check all current loaded assemblies in case talready loaded
//has already been loaded as …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用NHibernate和Spring.net开发.Net Web项目.但我被卡住了.
Spring.net似乎依赖于不同版本的NHibernate程序集(可能它需要1.2.1.4000而我的NHibernate版本是1.2.0.4000).
我用"bindingRedirect"标签解决了一些问题,但现在甚至停止了工作.
我的问题是:
有没有办法以简单的方式解决这种库间关系?
assemblies ×10
.net ×5
c# ×5
namespaces ×2
ado.net ×1
c++-cli ×1
checksum ×1
coding-style ×1
conflict ×1
debugging ×1
dll ×1
load ×1
methods ×1
mixed-mode ×1
mono ×1
monodevelop ×1
nhibernate ×1
optimization ×1
reference ×1
reflection ×1
spring.net ×1
visual-c++ ×1
wcf ×1