我已经使用Visual Studio很长一段时间了,主要是为C++开发.我经常需要创建包含多个模块(项目)的解决方案 - 例如实用程序库,它由几个.dll文件组成.
当需要一个模块(A)使用另一个模块(B)时,有以下标准模式:
Linker- > Input- > Additional Dependencies- > 'B.lib').最近,我开始玩弄C#,因为我决定开发一些基于GUI的工具,我的引擎与它(这是很多更简单,比使用C++和外部库的Qt一样wxWidgets的或).我了解到,在C#中,使用'References'设置了这样的依赖:

当我发现时,我很惊讶这个选项也适用于C++项目!
实际上,在我创建示例解决方案并以这种方式设置依赖关系后,一切都运行正常,没有任何其他配置,如"链接器输入"或其他东西.
我的问题是:什么究竟该选项为C++项目呢?我对所有利润和潜在的权衡感兴趣.
我已经知道,它导致其他项目的链接输出设置为依赖项.还要别的吗?也许参考模块之间有一些运行时依赖?它如何影响生成的输出?
c++ project-reference visual-studio visual-c++ visual-studio-2012
我正在Visual Studio 2008中编写一个应用程序.我有一个帮助文件,我希望将其包含在项目的输出中.我希望我的帮助文件的最新版本保留在不是我的visual studio项目目录的文件夹中.例如C:/ Helpfiles.
我想在我的Visual Studio项目中包含这个文件,这样当我构建项目时,我会在项目输出中获得该文件的最新版本(在C:/ helpfiles中).如果我只是"添加现有"并选择帮助文件,它会在每次构建时从C:/ helpfiles中获取最新版本吗?
我的 .net 解决方案中有三个项目。
主项目和两个类库项目。
我发现我需要交叉引用类库项目。
我可以这样做吗?安全吗还是有一些注意事项?
我有一个包含多个项目的解决方案,我们称之为ProjectA和ProjectB.我需要ProjectA引用ProjectB,但是当我"导出模板"时,我似乎无法保留引用.我想要做的是在创建新项目时让它为我创建引用,然后自动将其命名为我输入的内容.
project-reference visual-studio-2010 project-template visual-studio
我有两个项目说P1和P2.
P1具有P2 的参考.
所以我可以访问P2's methods从P1.但是如果我要访问P1's methods从P2那我该怎么访问它们?
我知道我无法添加
P1's参考资料P2?
如果有可能?如果是,那怎么样?
我有一个C#项目,我想添加一个引用.我知道怎么做但我应该使用哪一个 - 项目中的lib文件夹或通过NuGet安装包?如果一个人比另一个好,那么两者的利弊都会很好.我目前的意见是我应该尽可能使用NuGet,因为我可以看到VS中是否有直接更新库.但我需要有关该主题的更多信息......
我在尝试使用 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
我有许多项目的解决方案。
我已将 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 版本而不是框架版本来匹配我的解决方案中的其他项目?
我有两个类库项目和一个 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
请原谅这个令人难以置信的愚蠢问题,但我不熟悉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)
但我得到的只是错误信息.
所以任何人都可以一步一步地解释为什么我需要做什么?
c# ×4
.net ×3
nuget ×2
asp.net ×1
c++ ×1
dependencies ×1
helpfile ×1
msbuild ×1
reference ×1
visual-c++ ×1