相关疑难解决方法(0)

如果在解决方案中使用项目依赖项,MSBuild不会复制引用(DLL文件)

我的Visual Studio解决方案中有四个项目(每个人都针对.NET 3.5) - 对于我的问题,这两个项目很重要:

  1. MyBaseProject < - 此类库引用第三方DLL文件(elmah.dll)
  2. MyWebProject1 < - 此Web应用程序项目引用了MyBaseProject

我加入了elmah.dll参考MyBaseProject通过点击在Visual Studio 2008中的"添加引用..."→"浏览"选项卡→选择"elmah.dll".

Elmah Reference的属性如下:

  • 别名 - 全球
  • 复制本地 - true
  • 文化 -
  • 说明 - 错误记录ASP.NET的模块和处理程序(ELMAH)
  • 文件类型 - 装配
  • 路径 - D:\ webs\otherfolder\_myPath\__ tools\elmah\Elmah.dll
  • 已解决 - 真的
  • 运行时版本 - v2.0.50727
  • 指定版本 - false
  • 强名 - 假
  • 版本 - 1.0.11211.0

MyWebProject1中,我通过以下方式添加了对Project MyBaseProject的引用:"Add reference ..."→"Projects"选项卡→选择"MyBaseProject".除以下成员外,此引用的属性相同:

  • 描述 -
  • 路径 - D:\ webs\CMS\MyBaseProject\bin\Debug\MyBaseProject.dll
  • 版本 - 1.0.0.0

如果我在Visual Studio中运行构建,则elmah.dll文件将与MyBaseProject.dll一起复制到MyWebProject1的bin目录中!

但是,如果我清理并运行MSBuild解决方案(通过D:\ webs\CMS> C:\ …

msbuild dependencies reference project visual-studio

271
推荐指数
9
解决办法
14万
查看次数

引用DLL文件没有复制到bin,部署项目导致错误

我们的Web应用程序项目中引用了几个外部DLL文件.我们有一个用于在托管服务器上安装的部署项目.当我们使用.NET 3.5和Visual Studio 2008时,DLL文件被复制到bin文件夹.由于我们已经升级到.NET 4和Visual Studio 2010,因此不再发生这种情况,并且由于无法找到引用,因此我们收到服务器错误.

CopyLocal设置为true,我在web.config中找不到任何内容,表明这是在其他地方设置的.

web-deployment-project visual-studio-2010

60
推荐指数
1
解决办法
7万
查看次数

为什么我的参考的Copy Local属性被禁用?

我试图将引用的DLL设置为显式复制到我的本地文件夹,但是当我转到此引用的Copy Local属性时,该属性显示为灰色/禁用.

已禁用复制本地属性

通常我的VB.NET项目My Project在项目名称下面有一个项目,我可以双击>> references并设置Copy Local属性,但是我的C#控制台应用程序似乎没有这个.

我的项目参考

我可能错误地配置了我的项目吗?任何有关这方面的帮助将不胜感激.

c# dll visual-studio

54
推荐指数
1
解决办法
3万
查看次数

visual studio如何使用多项目解决方案确定要复制到输出目录的内容?

假设我们有一个具有以下结构的解决方案:

  • Project.DAL - 数据访问层,取决于较低级别的库,例如Oracle.DataAccess w/copy local = true
  • Project.BLL - 业务逻辑层,将Project.DAL引用为项目
  • Project.UI - UI层,编译为可执行文件,引用Project.BLL,默认项目

编译Project.UI时,VS非常聪明,可以将Project.DAL.dll复制到输出目录,但是它不够聪明,我想要将Oracle.DataAccess复制到输出目录以及分发给客户端.

任何人都可以解释为什么会这样吗?是因为它在GAC中看到Oracle.DataAccess并假设客户端也会在GAC中拥有它吗?

这并不是什么大不了的事,但每次添加新的程序集引用时都有点烦人,我必须记住将其设置为复制本地并添加项目以在我的构建脚本中复制它.

msbuild assemblies visual-studio

27
推荐指数
3
解决办法
1万
查看次数

Roslyn抛出不支持语言'C#'

我创建了一个类库项目并进行了一些处理,并使用Roslyn生成代码.

我在WPF GUI应用程序中使用该库作为参考.

这些是NuGet包:

在此输入图像描述

Build显示没有错误,但是当我使用以下代码时:

private static void GetGenerator()
{
  workspace = new AdhocWorkspace();
  generator = SyntaxGenerator.GetGenerator(workspace, LanguageNames.CSharp);
}
Run Code Online (Sandbox Code Playgroud)

我得到一个例外:

"不支持语言'C#'."

   at: Microsoft.CodeAnalysis.Host.HostWorkspaceServices.GetLanguageServices(String languageName)
   at: Microsoft.CodeAnalysis.Host.Mef.MefWorkspaceServices.GetLanguageServices(String languageName)
   at: Microsoft.CodeAnalysis.Editing.SyntaxGenerator.GetGenerator(Workspace workspace, String language)
Run Code Online (Sandbox Code Playgroud)

根据这个这个,我必须在本地复制CodeAnalysis文件并添加必要的引用.他们在那里,但错误发生.

这仍然是去年没有修复的错误吗?

我还该怎么办?

c# roslyn

17
推荐指数
2
解决办法
2338
查看次数

引用的项目依赖项DLL不被复制

我的项目解决方案当前有三个项目:

  1. MyProject,这是我的主要启动项目(使用.NET Framework 4.7)-WPF,特定于用户界面,
  2. MyProject.Core-类库(.NET Standard 2.0)-保存模型以及所有“幕后”数据
  3. MyProject.Relational-类库(.NET Standard 2.0)-负责处理和保存数据库特定的信息

Project 1(主要)已为project 2和设置了引用3

对于项目,3我已经安装了的NuGet依赖项Microsoft.EntityFrameworkCore.Sqlite (2.0.3)

现在,当我最终想要使用项目3并调用它的方法时,将引发以下异常:

System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=2.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' or one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

当然,这是一个丢失的DLL文件-没有实体框架DLL被复制到app Debug目录。

为什么会这样呢?这是预期的行为吗?我是否还必须安装Microsoft.EntityFrameworkCore.Sqlitefor项目的依赖项1?对于我而言,毫无意义,因为它引用了没有使用它的项目依赖项。

我尝试了什么:

  • 清理项目,删除bin / obj目录,
  • 将项目参考属性设置设置copy localTrue
  • 在此问题中给出的解决方案: …

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

4
推荐指数
1
解决办法
505
查看次数