我是C#的新手,因此可能有可能我沒有提出正確的問題。請多多包涵。MSBuild不解決指向GAC之外的引用
我有一個解決方案,在該解決方案中是遠程執行SSIS包的項目。經過一番研究後,我發現爲了做到這一點,我需要創建一些對GAC(大會目錄?)「外部」的DLL的引用。以下組件進行引用:
C:\ WINDOWS \裝配\ 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,版本= 11.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91」的引用。 [C:\ TestModule \ SSISTests \ SSISTests.csproj]
有沒有一個選項,我沒有傳遞給MSBuild,可以解決這個問題?這不是一個依賴性問題(我不認爲),因爲這個項目不需要其他項目 - 只是這些SQL Server程序集。
正如邁克爾所說,結果如何建立SSISTest.csproj項目而不是解決方案?您是否嘗試將「Microsoft.SqlServer.Management.Common.ISfcConnection」引用添加到該項目? –
參考資料在那裏,正如我在我的原始文章中所述。我將不得不嘗試用MS構建項目文件以查看會發生什麼 – Matt1776
Leo - 我明白你的意思 - 是的,由於某些原因,SDK引用了其他我沒有參考的dll,它在VS但不是當我打電話給MS Build時 - 不清楚原因。 – Matt1776