标签: project-reference

在Visual Studio中添加对C++项目的引用有什么影响?

我已经使用Visual Studio很长一段时间了,主要是为C++开发.我经常需要创建包含多个模块(项目)的解决方案 - 例如实用程序库,它由几个.dll文件组成.

当需要一个模块(A)使用另一个模块(B)时,有以下标准模式:

  1. 包括所需的标题.
  2. 链接B中的输出库文件(例如,在VS中:项目配置 - > Linker- > Input- > Additional Dependencies- > 'B.lib').
  3. [可选]设置正确的构建顺序(因此B在A之前构建).

最近,我开始玩弄C#,因为我决定开发一些基于GUI的工具,我的引擎与它(这是很多更简单,比使用C++和外部库的Qt一样wxWidgets的或).我了解到,在C#中,使用'References'设置了这样的依赖:

在此输入图像描述

当我发现时,我很惊讶这个选项也适用于C++项目!

实际上,在我创建示例解决方案并以这种方式设置依赖关系后,一切都运行正常,没有任何其他配置,如"链接器输入"或其他东西.

我的问题是:什么究竟该选项为C++项目呢?我对所有利润和潜在的权衡感兴趣.

我已经知道,它导致其他项目的链接输出设置为依赖项.还要别的吗?也许参考模块之间有一些运行时依赖?它如何影响生成的输出?

c++ project-reference visual-studio visual-c++ visual-studio-2012

6
推荐指数
1
解决办法
1954
查看次数

如何在项目中包含/引用文件而不将其复制到项目目录中?

我正在Visual Studio 2008中编写一个应用程序.我有一个帮助文件,我希望将其包含在项目的输出中.我希望我的帮助文件的最新版本保留在不是我的visual studio项目目录的文件夹中.例如C:/ Helpfiles.

我想在我的Visual Studio项目中包含这个文件,这样当我构建项目时,我会在项目输出中获得该文件的最新版本(在C:/ helpfiles中).如果我只是"添加现有"并选择帮助文件,它会在每次构建时从C:/ helpfiles中获取最新版本吗?

helpfile project-reference visual-studio-2008 visual-studio

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

交叉引用组件

我的 .net 解决方案中有三个项目。
主项目和两个类库项目。

我发现我需要交叉引用类库项目。
我可以这样做吗?安全吗还是有一些注意事项?

.net project-reference cross-reference circular-reference

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

在Visual Studio中导出模板时如何添加相同的解决方案项目引用?

我有一个包含多个项目的解决方案,我们称之为ProjectA和ProjectB.我需要ProjectA引用ProjectB,但是当我"导出模板"时,我似乎无法保留引用.我想要做的是在创建新项目时让它为我创建引用,然后自动将其命名为我输入的内容.

project-reference visual-studio-2010 project-template visual-studio

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

参考两个项目

我有两个项目说P1P2.

P1具有P2 的参考.

所以我可以访问P2's methodsP1.但是如果我要访问P1's methodsP2那我该怎么访问它们?

我知道我无法添加P1's参考资料P2

如果有可能?如果是,那怎么样?

c# reference project-reference visual-studio

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

库参考与NuGet包

我有一个C#项目,我想添加一个引用.我知道怎么做但我应该使用哪一个 - 项目中的lib文件夹或通过NuGet安装包?如果一个人比另一个好,那么两者的利弊都会很好.我目前的意见是我应该尽可能使用NuGet,因为我可以看到VS中是否有直接更新库.但我需要有关该主题的更多信息......

c# project-reference nuget nuget-package

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

MSBuild - 尝试构建项目引用时的竞争条件

我在尝试使用 MSBuild 构建时遇到一个奇怪的问题。

我正在使用 MSBuild 构建一个解决方案文件/m(并行构建)并BuildProjectReferences设置为true.

假设我在 .sln 文件中拥有A.vcxproj和 ,B.vcxproj其中 B 具有对 A 的项目引用。

发生的情况是:A project首先开始构建,在编译过程中,B project开始在另一个进程中构建(因为并行构建),并且它将调用构建 A。

现在这会导致竞争条件,因为我们有两个进程试图构建相同的进程project A,并且我会看到访问问题。

理想情况下,如果 A 尚未完成构建,MSBuild 不应调用构建 B,或者如果它调用了 B,则检测到 A 仍在构建并等待其完成。

这一切都没有发生。另外,这种情况仅在 MSBuild 中发生 - 如果我尝试从 VS2015 IDE 构建解决方案文件,则不会发生这种情况。

知道为什么 MSBuild 会这样吗?

msbuild project-reference race-condition parallel-builds msbuild-projectreference

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

System.Net.Http 引用属性路径未显示 NuGet 包路径

我有许多项目的解决方案。

我已将 system.Net.http 更改为使用 NuGet 版本和大多数项目,当我在解决方案资源管理器的引用节点中选择“System.Net.Http”引用时,它显示的路径为“X:\myPath\packages \System.Net.Http.4.3.4\lib 等..."

正确的参考路径

但是,在删除对 System.Net.Http 的引用然后转到 NuGet 包管理器并安装它时,我有几个项目,当您单击引用节点中的引用时,路径显示为“C:\Program Files 等... . Microsoft.NET.Build.Extensions\net461\"

不正确的参考路径

我打开了项目文件,“HintPath”是正确的,但是参考属性中显示的路径不正确。

项目文件提示路径

当我查看对象浏览器时,它确认该项目实际上正在调用 System.Http.Net 的框架版本(因此,即使我安装了 NuGet 版本,并且 HintPath 指向我们的包文件夹,它仍然引用框架版本)

有谁知道为什么路径不匹配以及我如何解决这个问题(所以我的项目使用 NuGet 版本而不是框架版本来匹配我的解决方案中的其他项目?

以防万一它有帮助,以下是问题项目中的所有参考: 问题项目参考

.net asp.net project-reference visual-studio nuget

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

无法加载文件或程序集以供项目参考

我有两个类库项目和一个 Web API 项目。让它成为 ClassLibrary1、ClassLibrary2、WebApi。
我将 Web API 的链接添加到 ClassLibrary1 和 ClassLibrary2 作为项目参考。
此外,ClassLibrary1 还具有指向 ClassLibrary2 的链接作为项目参考。

在编译阶段,我没有错误,但在运行时,我收到下一个错误:
无法加载文件或程序集'ClassLibrary1,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'。该系统找不到指定的文件。

对于这些项目,所有 Nuget 包都具有相同的版本。

在此输入图像描述

c# dependencies class-library project-reference visual-studio

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

如何从另一个项目中的一个项目调用类?

请原谅这个令人难以置信的愚蠢问题,但我不熟悉C#.我只是无法弄清楚如何在另一个项目中使用一个项目中的类.

假设我想从Project1中取一个字符串到Project2,并让Project2打印出字符串.

我使用"添加引用"菜单从Project1引用Project2,然后我添加"使用Project2"然后我将其写入尝试并从"Project2"中的"ClassA"调用"print".

        Project2.ClassA Classa = new Project2.ClassA();
        Console.WriteLine(Classa.print);
Run Code Online (Sandbox Code Playgroud)

但我得到的只是错误信息.

所以任何人都可以一步一步地解释为什么我需要做什么?

.net c# project-reference console-application visual-studio

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