我在我的asp.net应用程序的浏览器中收到“无法加载文件或程序集'Microsoft.AI.Web'或其中一个依赖项”的错误。 Microsoft.AI.Web来自Microsoft.ApplicationInsights.Web NuGet包。
我注意到了这一点:
<div class="mid">
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
<div class="slot"></div>
</div>
有问题的dll位于LOG: Appbase = file:///D:/Source/Workspaces/AppName/Branches/Main/Application/WT/
LOG: Initial PrivatePath = D:\Source\Workspaces\AppName\Branches\Main\Application\WT\bin
至于个人dll - 在项目中 - &gt;属性 - &gt;构建 - &gt;输出路径 - &gt;我把它设置为“.. \ Any \ Debug \”。当我构建项目时,DLL就会填充在那里。
我检查了.csproj文件中的引用和代码,所有的dll都位于我指定的位置。
我不知道为什么当我告诉输出是在其他地方并且在同一文件夹中查找dll(通过引用和.csproj文件)时,它试图查看项目的bin文件。我该怎么做才能让VS在我想要的文件夹路径中查找dll而不是“WT \ bin”?
当我将项目输出路径更改为“bin”时,它可以检测到dll,即使dll的路径保持不变(D:\Source\Workspaces\AppName\Branches\Main\Application\packages\Microsoft.ApplicationInsights.Web.2.4.1\lib\net45\Microsoft.AI.Web.dll
)。
答案 0 :(得分:1)
由于它是Microsoft强签名DLL,因此请将其添加到服务器的GAC。
如果您将其放在GAC中,它会自动找到该文件。另一个优点是,如果您需要将其用于部署在同一服务器上的另一个项目,则不需要再次部署它。
这里有一些关于如何在服务器计算机上安装DLL到GAC的信息,假设没有安装gacutil。看看接受的答案,而不是问题。 Drag and drop a DLL to the GAC ("assembly") in windows server 2008 .net 4.0
将gacutil.exe和gacutil.exe配置从您的计算机复制到服务器的C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319
然后在服务器上运行: &#34; C:\的Windows \ Microsoft.NET \框架\ v4.0.30319 \的Gacutil.exe&#34; / i&#34;路径到你的DLL&#34;