问题标签 [project-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
488 浏览

visual-studio-2010 - 调试后删除的项目引用

我们最近升级到 VS2010 (10.0.40219.1 SP1Rel) 和 .net 7.1.1.4 (x64) 的 ILOG 规则。现在可能发生以下情况:

  1. 打开解决方案。
  2. 调试项目
  3. 停止调试。
  4. 关闭一个文件(目前为止:app.Config 和 Program.cs)
  5. 观看“重构规则”通知窗口出现。
  6. 当每个 rulep 文件的第一个项目引用被删除时,惊恐地倒吸一口凉气。

大型解决方案会发生这种情况(约 60 个 csproj 和约 15 个规则)。较小的解决方案会发生这种情况(6 个 csproj 和 1 个规则)。

我们已经开始采取极端的开发措施来避免引用丢失(在调试时卸载所有规则并在调试后关闭/重新打开 VS2010)。

我们的项目或软件设置中是否有一些东西可以更改以阻止项目引用下降?


更新:虽然使用调试器是发生“重构规则/引用删除”问题的可靠方法,但它偶尔也会通过关闭文件而发生 - 不使用调试器。


我已经授予了第一个赏金,如果有人提出可以接受的答案,我愿意设置第二个赏金。


解决方法:我们有三个解决方案文件

  1. 包含构建服务器所有内容的解决方案文件。
  2. 仅包含规则及其依赖项的解决方案文件。开发人员构建一次以获取规则的 .dll。
  3. 不包含规则项目的解决方案文件。需要 rulep 的 dll 的项目具有将 dll 复制到其文件夹中的预构建事件以及对该位置的程序集引用。允许调试和发布构建需要一点点摆弄。

开发人员可以安全地调试没有规则文件供 VS 破坏的第三个解决方案。

0 投票
1 回答
300 浏览

c# - 如何将程序集从 .Net 3.5 迁移到 .Net 4.0?

我从 github 下载了一个项目: https ://github.com/HEskandari/FarsiLibrary/zipball/master

我用visual studio 2010打开这个,这个解决方案包含一个名为“FarsiLibrary.WPF.VisualStudio.Design”的项目,这个项目包含对.Net 3.5中程序集的引用,并且visual studio无法识别Microsoft.Windows.Design。*程序集,因为这个.Net 3.5 中存在程序集。

因此,当我将目标框架更改为 3.5 时,不幸的是,这种更改没有反映,然后目标框架自动再次设置为 .Net 4。

我想知道如何处理它来构建没有任何问题?

感谢。

0 投票
1 回答
1390 浏览

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

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

0 投票
4 回答
30749 浏览

c# - 如何在另一个项目中调用一个项目中的类?

请原谅这个非常愚蠢的问题,但我是 C# 新手。我只是不知道如何在另一个项目中使用来自一个项目的类。

假设我想将一个字符串从 Project1 带到 Project2 并让 Project2 打印所述字符串。

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

但我得到的只是错误消息。

那么任何人都可以逐步解释我为什么需要这样做吗?

0 投票
2 回答
6722 浏览

c# - 通过 EnvDTE 在 C# 中以编程方式添加项目引用(而不是程序集引用)

在 Visual Studio 中,当您在 .csproj 文件中的解决方案中添加对现有项目的引用时,结果如下:

如果我通过 EnvDTE 添加对程序集 DLL 的引用:

它像这样结束:

这不是很好,因为如果我切换到发布版本,它仍然会引用调试程序集。另一个问题是我必须先构建引用的程序集,然后才能将其添加为引用。使用 Visual Studio UI,我可以添加对未构建项目的引用。

是否可以通过 EnvDTE API 添加项目参考?

我知道我可以将 .csproj 文件作为 XML 文档进行操作并做任何我想做的事情,但由于我从 EnvDTE 的路径开始,我更愿意坚持下去。

0 投票
1 回答
949 浏览

c++ - 如何在 VS 2010 中自动链接依赖项的依赖项?

我正在使用带有大量项目和解决方案文件的 Visual Studio 2010。但现在我发现自己对 ProjectReferences 有点依赖地狱:

  • 项目Simple生成一个静态库。
  • 项目FooBar依赖Simple,也产生静态库。
  • 项目Module依赖Foo并产生一个 DLL。
  • 项目Module2依赖Bar并产生一个 DLL。

所以依赖树看起来像这样:

有了ProjectReferences,我可以使Module依赖Foo和自动链接Foo.lib。这工作正常。

但是,有没有办法Module自动链接Simple.lib

似乎这应该是可能的。 Module取决于Foo,这取决于Simple,所以它似乎应该能够选择“链接到我的参考文献的输出和我的参考文献的参考文献”。但我找不到任何可以让我这样做的东西。

“链接库依赖项”选项不这样做。它仅在 Foo.lib 中链接,然后我收到有关未解析的外部符号(在 Simple.lib 中定义的符号)的链接错误。

trueFoo->SimpleBar->引用设置“链接库依赖项”一开始Simple似乎有效,直到您有一个同时使用Foo和的项目Bar。该设置实际上嵌入Simple.libFoo.libandBar.lib中,如果您尝试同时使用Foo.liband ,则会出现“符号已定义”错误Bar.lib。这是正确的错误 - 我实际上不想放入Simple.lib任何其他库中。

我可以添加ProjectReferecefrom Moduleto Simple,但是在每个使用 的项目中设置它很乏味Foo,并且违反了Foo. Module应该不需要知道Simple。显然,链接器需要了解Simple,但它应该能够通过遵循 ProjectReferences 来解决这个问题。

这就是为什么这很重要:假设在维护期间,创建了一个新项目: Basic,它创建了一个静态库,并Simple依赖于Basic. 现在我们必须直接或通过另一个 ProjectReference 更新每个具有 to 的单个项目ProjectReferenceSimple在此示例中它只有两个项目ModuleModule2,但实际上它是几十个)。这很乏味。

tl; dr有没有办法自动链接到我的依赖项的静态库中?

0 投票
0 回答
933 浏览

upgrade - 我已经从 Visual Studio 2010 升级到 2012。对 SqlClr 项目的项目引用正在寻找我的项目的 dll,但没有文件扩展名

假设我有一个名为 MySqlClrProject 的 SqlClr 项目,它构建文件 MySqlClrProject.dll。我观察到构建输出文件名可以是 MySqlClrProject 或 MySqlClrProject.dll,但任何一种方式都会生成一个名为 MySqlClrProject.dll 的文件。我的解决方案中还有另一个项目,名为 MyClassLibrary,它有一个对 MySqlClrProject 的项目引用。当我构建 MyClassLibrary 时,我会看到这个错误:

CS0006:找不到元数据文件“C:\devStuff\MySqlClrProject\bin\Debug\MySqlClrProject”

在此之前,在输出中,我看到:

ResolveAssemblyReferences:5> 主要参考“MySqlClrProject”。

5> 找不到依赖文件。预期的文件“C:\devStuff\MySqlClrProject\bin\Debug\MySqlClrProject”不存在。

5> 找不到依赖文件。预期的文件“C:\devStuff\MySqlClrProject\bin\Debug\MySqlClrProject”不存在。

5> 解析的文件路径为“C:\devStuff\MySqlClrProject\bin\Debug\MySqlClrProject”。

5> 在搜索路径位置“”找到参考。

5> 找到相关文件“C:\devStuff\MySqlClrProject\bin\Debug\MySqlClrProject.pdb”。

5> 找到相关文件“C:\devStuff\MySqlClrProject\bin\Debug\MySqlClrProject.xml”。

5> 此引用的 ImageRuntimeVersion 是“”。

如果我添加一个将 MySqlClrProject.dll 复制到 MySqlClrProject 的后期构建步骤,一切都很好。或者,如果我直接引用 dll,而不是使用项目引用,那么它再次工作正常。我真的宁愿不走这两条路...

无论如何,还有其他人看过这个吗?有什么我可能做错了吗?我知道 VS2012 非常新,在 SqlClr 项目方面它们发生了很大变化,但我想知道问题出在我这边还是微软那边。

谢谢。

0 投票
1 回答
169 浏览

c# - 将项目拖放到引用文件夹

(视觉工作室 2012)

有没有办法通过简单地将解决方案项(项目)拖动到其他项目引用文件夹中来创建解决方案引用?像这样?

http://i.snag.gy/p692V.jpg

某种插件或添加或什么?

0 投票
10 回答
20641 浏览

c# - 奇怪:找不到 C# 类型或命名空间名称 - 构建成功

在 VS2012 IDE 中打开项目时,我的项目中出现了一个奇怪的错误。在我使用另一个引用项目的地方,它突然说"Type or Namespace name could not be found"。通过“说”,我的意思是当我将鼠标悬停在它上面时,它的文本带有红色下划线和错误。智能感知不适用于该代码。但是(这是奇怪的部分),错误不会显示在错误控制台中,并且项目可以正常构建和运行。

我什至可以调试和单步调试代码,它工作得非常好。因此,在运行时项目被很好地引用,但在设计时 IDE 找不到它。这在过去的两周内有效,然后突然变得有点疯狂。这真的很烦人,因为我在没有智能感知的情况下编码很垃圾!

有没有人见过这样的事情或有什么建议?

0 投票
1 回答
99 浏览

tfs - 推荐的 TFS 结构是什么。

我们正在尝试从当前的源代码控制转移到 TFS 作为源代码控制。现在我们将所有项目作为项目参考。我们的组织很小,我们有很多共同的项目供各种开发团队使用,所有团队都根据需要更新这些项目。当我们迁移到 TFS 时,我们希望为这些项目使用 DLL 引用,但我想知道这是否会使分支变得不可能,而且我还担心对公司所有团队都需要的项目进行 DLL 引用是否有好处进行更改。

鉴于我们的场景,您能否建议让 DLL 引用到我们的常见项目或拥有项目引用是个好主意。任何指向建议读物的链接也会有所帮助。