【问题标题】:MSBuild not resolving references pointing outside of GACMSBuild 不解析指向 GAC 之外的引用
【发布时间】:2017-06-02 22:59:05
【问题描述】:

我是 C# 新手,所以我可能没有问正确的问题。请多多包涵。

我有一个解决方案,该解决方案中有一个远程执行 SSIS 包的项目。经过一些研究,我发现为了做到这一点,我需要创建一些对 GAC(General Assembly Catalog ?)“外部”的 DLL 的引用。引用了以下程序集:

C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.Management.IntegrationServices\11.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.Management.IntegrationServices.dll

C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Management.Sdk.Sfc.dll

C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Smo.dll

当我在 Visual Studio 2015 中清理和构建解决方案时,一切正常。但是,当我从我的部署脚本中调用解决方案上的 MSBuild 时,我收到许多错误,指出引用不存在。例如,这是其中一个错误:

“C:\TestModule\SSISTests\SSISTests.csproj”(默认目标)(10)->(CoreCompile 目标)-> SSISTests.cs(78,17):错误 CS0012:类型 'Microsoft.SqlServer.Management .Common.ISfcConnection' 是在不是 参考。您必须添加对程序集“Microsoft.SqlServer.ConnectionInfo,Version=11.0.0.0,Culture=neutral,PublicKeyToken=89845dcd8080cc91”的引用。 [C:\TestModule\SSISTests\SSISTests.csproj]

是否有一个我没有传递给 MSBuild 的选项可以解决这个问题?这不是依赖问题(我不认为),因为这个项目不需要其他项目 - 只是这些 SQL Server 程序集。

【问题讨论】:

  • 正如迈克尔建议的那样,结果如何只是构建 SSISTest.csproj 项目而不是解决方案?您是否尝试将“Microsoft.SqlServer.Management.Common.ISfcConnection”引用添加到该项目?
  • 参考文献如我在原始帖子中所述。我将不得不尝试使用 MS build 仅构建项目文件,看看会发生什么
  • Leo - 我现在明白你的意思了 - 是的,出于某种原因,SDK 引用了我没有引用的其他 dll,它在 VS 中工作,但在我调用 MS Build 时没有 - 不是明确原因。

标签: c# .net visual-studio-2015 msbuild


【解决方案1】:

打开您的 csproj 文件并检查该 DLL 是否被正确引用。另外,看看您是否可以仅针对 csproj 而不是 sln 运行 MSBuild。可能是路径问题。

【讨论】:

  • 我认为您可能是正确的 - csproj 文件中有两个引用具有称为“HintPath”元素的内容,并且它使用的是相对路径。如何以编程方式更正此问题?示例:..\..\..\..\..\..\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies\Microsoft.SqlServer.Smo.dll
  • 另外,当我进行发布版本而不是调试版本时,DLL 不会复制并且一切都很干净。但是,这是否意味着这将无法在不同的系统上运行?我希望所有内容都包含在发布文件夹中,我需要在任何其他系统上运行它
  • 你能手动编辑 DLL 的路径,保存它,然后针对 csproj 运行 MSBuild 并告诉我会发生什么吗?为提示使用相对路径。
  • 这是一个路径问题,很抱歉我忘了回到这个问题。我删除并重新添加了引用并且它起作用了。我移动代码时出了点问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
相关资源
最近更新 更多