标签: .net-assembly

支持ASP.NET\C#项目上的多个程序集

我们正在开发一个ASP.NET应用程序,并且在与MS dll(Microsoft.AnalysisServices)集成时遇到一些问题?

原始项目链接到SQLServer2005(版本= 9.0.242.0)附带的dll.迁移到SQLServer2008R2(版本= 10.0.0.0)后,我们遇到了这个问题:

无法加载文件或程序集'Microsoft.AnalysisServices,Version = 9.0.242.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一.该系统找不到指定的文件.

这是理解的,因为我们用一个版本编译项目,然后另一个版本位于服务器上.在开发机器上安装SQLServer2008R2后,问题得到了解决.

但是,我们现在有另一个问题,我们需要支持SQLServer2005和SQLServer2008R2环境.我知道我们可以使用配置文件重定向dll的搜索路径(它将搜索与其编译的不同版本),但我似乎无法找到如何将其用于Web应用程序的说明(在w3wp).我们尝试使用"特定版本"= false,但由于这是一个"强名称"程序集,它不会像人们想象的那样工作.

我找到的相关链接是:http:
//social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/47d0b992-3c10-4851-b2a5-9f72d2c0976e

有人可以指导我一个解决这个问题的链接吗?

更新:我想我没有正确测试它,因为它不适用于SQLServer2008 R2中的其他服务器.我猜你不能在newVersion元素中使用range.所以这个问题仍然适合每个人!.底线是我知道我有版本9.0.242.0但客户版本可能是9.0.242.0或10.0.0.0.有没有一种方法可以在生产服务器上动态选​​择正确的程序集

dll sql-server-2005 .net-assembly sql-server-2008 c#-4.0

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

关闭警告CS1607

我有一个常见的程序集文件,我试图关闭警告:

警告CS1607:程序集生成 - 为"文件版本"指定的版本"2.0.4.121106"不是正常的"major.minor.build.revision"格式

我这样做了但是没有用:

#pragma warning disable 1607    
[assembly: AssemblyVersion("2.0.*")]
[assembly: AssemblyFileVersion("2.0.4.121106")]
[assembly: AssemblyInformationalVersion("2.0.0.0")]
#pragma warning restore 1607
Run Code Online (Sandbox Code Playgroud)

那么在代码中有一些方法可以做到这一点吗?

c# .net-assembly

5
推荐指数
2
解决办法
4362
查看次数

错误:无法加载文件或程序集"Oracle.ManagedDataAccessDTC"或其依赖项之一

背景

  • 我有一个包含Console项目和MVC4 Webapp的解决方案.
  • 两者都引用Oracle.ManagedDataAccess(托管的ODP.NET数据访问提供程序).引用是指同一个文件.
  • 两者都没有引用Oracle.ManagedDataAccess DTC.
  • 在VS Configuration Manager中,该平台列为所有配置选项的"任何CPU".
  • 两者的平台目标是"任何CPU"

问题

控制台应用程序执行得非常好.

当我尝试使用MVC4应用程序时,我看到:

Could not load file or assembly 'Oracle.ManagedDataAccessDTC' or one of its dependencies. An attempt was made to load a program with an incorrect format.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.BadImageFormatException: Could not load file or assembly 'Oracle.ManagedDataAccessDTC' or one …
Run Code Online (Sandbox Code Playgroud)

oracle asp.net-mvc reference odp.net .net-assembly

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

StructureMap:'AddAllTypesOf'没有向ObjectFactory添加程序集?

我正在尝试构建一个控制台应用程序,它在运行时加载一个实现接口的程序集.关键是要创建一个带有指令的.dll,可以通过更改.dll来更改这些指令.

我的VS2012解决方案包含3个项目:界面,实现它的库和控制台应用程序.(因此,这三个都有自己的命名空间,也许这是一个问题?)库和控制台应用程序都引用了接口项目.

将组件添加到组件后ObjectFactory,在使用时找不到它们GetAllInstances.它们在使用时被发现AssembliesFromPath,但添加似乎不起作用.

这是我的代码:

var dir = "..\\..\\..\\ComputeLibrary\\bin\\Debug";
ObjectFactory.Initialize(cfg =>
{
    cfg.Scan(scanner =>
    {
        scanner.AssembliesFromPath(dir);
        scanner.AddAllTypesOf(typeof(ICompute)).NameBy(i => i.Name);
    });
});
var list = ObjectFactory.GetAllInstances<ICompute>().ToList();
list.ForEach(item => item.Test());
Run Code Online (Sandbox Code Playgroud)

如果有人想查看整个解决方案,可在此处获取.

我可能在这里做错了,但我似乎无法找到它是什么.这是应该如何使用的?或者我应该看看MEF做这样的事情?

c# structuremap .net-assembly

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

Visual Studio 2013错误:IntelliSense未列出朋友程序集的内部类型

问题定义:我有一个IRI.Ket.ShapefileFormat以某些internal类和结构命名的类库项目.我将另一个项目作为朋友程序集引入此类库.然后我就能够构建我的解决方案并成功运行程序.但是在编码时,intellisence不能识别那些内部类型和方法.如果我手动编写它们,它们不会按预期着色.

我正在研究Visual Studio 2013 Ultimate版.

在此输入图像描述

编辑:在上面的图片中为什么Shapefile(这是在类库中定义的内部类类型,我在朋友程序集中使用它)不是那样的颜色DataColumn?这是一个错误吗?

更奇怪的问题:每次成功构建解决方案但过了一段时间后,错误列表中会出现一些错误,并说Shapefile.Read由于其保护级别而无法访问!这是一个快照(所有这些方法都是内部的).奇怪的是我不知道有错误的项目可能会成功构建:)

在此输入图像描述

c# internal .net-assembly visual-studio-2013

5
推荐指数
0
解决办法
1077
查看次数

如何在不重新启动应用程序的情况下动态加载我的C#应用​​程序的一部分?

我的C#应用​​程序server.exe对我的业务运营至关重要,理想情况下需要24/7不间断地运行.代码是坚如磐石的,但是我无法控制的一件事是由第三方生成的入站数据源质量差.我偶尔会收到包含异常的数据Feed,在这种情况下我必须:

  • 更新内部的Feed处理代码server.exe以适应异常
  • 重新编译
  • server.exe使用新代码重新启动,并允许处理语法上有缺陷的feed

整个过程通常需要不到几分钟,但重新启动server.exe会导致某些非关键状态信息的重置,更糟糕的是,会导致外部进程中断,这取决于server.exe.

我的目标:将Feed处理代码隔离到一个单独的DLL中,其内容可以在不重新启动的情况下进行更新server.exe. 我该怎么做呢?

请允许我解释一下我在撰写此论坛帖子之前所做的工作:

Feed进程处理器界面已移至名为的新程序集common.dll.界面看起来像这样:

public interface IFeedProcessor{
    bool ProcessFeed(String filePath);  //returns false on failure, true on success
}
Run Code Online (Sandbox Code Playgroud)

Server.exe现在参考common.dll.

Feed进程本身已被移动到一个名为的新程序集feedProcessors.dll.实现看起来像这样:

internal class FeedProcessor1:IFeedProcessor{
    public FeedProcessor1(){}
    bool ProcessFeed(String filePath){/*implementation*/return true;}
}

internal class FeedProcessor2:IFeedProcessor{
    public FeedProcessor2(){}
    public bool ProcessFeed(String filePath){/*implementation*/return true;}
}

[... and so on...]
Run Code Online (Sandbox Code Playgroud)

feedProcessors.dll还包含一个名为的类FeedProcessorUtils,用于根据某些配置输入创建特定的Feed处理程序.它看起来像这样:

public class FeedProcessorUtils{
    public static void CreateFeedProcessor(int feedType …
Run Code Online (Sandbox Code Playgroud)

.net c# dynamic-loading .net-assembly

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

装配在构建之外进行优化

我有一个完全填充了在另一个程序集中实现接口的类的程序集.例如:

Main Assembly (Reference to both assemblies)

Shared Assembly
-----IModule 

Class Assembly (Reference to shared assembly)
-----unknownType : IModule
-----unknownType2 : IModule
Run Code Online (Sandbox Code Playgroud)

主程序集没有直接引用类程序集中的任何类型.我正在寻找类似的类型:

// Load all referenced assemblies:
Assembly.GetExecutingAssembly().GetReferencedAssemblies()
    .Except(AppDomain.CurrentDomain.GetAssemblies().Select(a => a.GetName()))
    .Distinct()
    .ToList()
    .ForEach(act => Assembly.Load(act));

// Find all instances of IModule in loaded assemblies:
var modules = from asm in AppDomain.CurrentDomain.GetAssemblies()
   from provider in asm.GetTypes()
   where typeof(IModule).IsAssignableFrom(provider)
   ...instantiate type etc...
Run Code Online (Sandbox Code Playgroud)

如果我在类程序集中只引用了一个任意类型,那么它会显示在GetReferencedAssemblies中,被加载并正确返回 - 但是一旦我删除对该类型的引用,它就不会被转移到构建目录或显示为引用的程序集导致加载失败.

有没有办法强制VS将此程序集包含在输出目录中?主应用程序不应该知道类程序集中的任何类型.

.net c# reflection .net-assembly visual-studio-2013

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

命名空间"System.Web.UI.WebControls"中不存在类型或命名空间名称"ToolkitScriptManager"

我收到以下错误

  The type or namespace name 'ToolkitScriptManager' does not exist in the namespace 'System.Web.UI.WebControls' (are you missing an assembly reference?)  
  The type or namespace name 'ModalPopupExtender' does not exist in the namespace 'System.Web.UI.WebControls' (are you missing an assembly reference?)  
  The type or namespace name 'Accordion' does not exist in the namespace 'System.Web.UI.WebControls' (are you missing an assembly reference?)   
Run Code Online (Sandbox Code Playgroud)

我已经安装了ajaxControlToolKit,我在web.config文件中有这个

<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"><controls>
    <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
  </controls></pages>
Run Code Online (Sandbox Code Playgroud)

我的.aspx页面

 <%@ Page Language="C#" AutoEventWireup="true"       CodeBehind="PaintBrushCanvas.aspx.cs" Inherits="VirtualClassroom.PaintBrushCanvas" %>
 <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" …
Run Code Online (Sandbox Code Playgroud)

asp.net ajax ajaxcontroltoolkit .net-assembly

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

给定Visual Studio中的类,如何找出包含它的dll?

正在修改现有的.NET项目。给定Visual Studio中的C#类,我如何找出具有它的DLL?

问题是我想在新项目的此类中使用一种方法,因此我需要找到要添加的正确的DLL作为新项目的参考。

.net c# dll .net-assembly visual-studio

5
推荐指数
2
解决办法
4492
查看次数

错误:"名称为'UnityEditor.StandardEvents'的程序集已存在(Packages/com.unity.standardevents/Editor/Editor.asmdef)"

我刚刚将我的统一更新为2018.1.0f2并且它给了我这个错误:"名称'UnityEditor.StandardEvents'的程序集已经存在(Packages/com.unity.standardevents/Editor/Editor.asmdef)"任何想法我应该是什么尽力避免这种情况.

.net-assembly unity-game-engine visual-studio

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