[英]msbuild fails with type or namespace name missing
我有一個 C# 項目 (csproj) 和一個解決方案 (sln),我想通過msbuild.exe
構建msbuild.exe
。
$ msbuild.exe foo.sln /m /t:Build /p:Configuration="Release"
這失敗了,這里有幾個錯誤:
(CoreCompile target) ->
AppComboCommand.cs(9,7): error CS0246: The type or namespace name 'EnvDTE' could not be found
(are you missing a using directive or an assembly reference?) [foo.csproj]
在 Visual Studio 2019 中打開項目然后再次通過命令行重新構建后,這些錯誤消失了。 VS 好像在打開項目的時候生成了幾個文件,我想知道我在這里錯過了什么。 這可能是依賴問題嗎?
任何幫助都受到高度贊賞
EnvDTE只是用於擴展 Visual Studio 功能的 vs sdk dll,它通常存儲在 vs 本地文件夾中。
首先,您應該先確保已安裝Visual Studio extension development
工作負載。 如果你使用 VS2019 的 Build Tool,你也應該記得檢查它。
請遵循這些:
1)如果你在本地引用了這個dll,請確保你已經通過右鍵單擊項目--> Add Reference
-->引用C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\IDE\\PublicAssemblies\\envdte.dll
。
不推薦使用以下方法,對於 vs SDK DLL 引用,使用 nuget 是有風險的:
如果您使用的NuGet安裝它EnvDTE
它確實存在於nuget.org
,當你從命令行構建它,你應該運行nuget restore MySolution.sln
第一。 MSBuild 命令行不會恢復丟失的包,這不是它的工作。
所以請先下載nuget.exe ,然后在腳本中添加:
$nuget="xxxxx\nuget.exe(the local path of the nuget.exe)"
$nuget restore `xxxxx\MySolution.sln`
然后執行構建過程。
2)我發現你使用powershell腳本來構建項目,所以請確保你使用的是VS2019的MSBuild而不是Net Framework( C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\MSBuild.exe
)。
$msbuild.exe="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
如果你安裝了Build Tool for VS2019 ,你應該使用這個路徑:
C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\MSBuild\\Current\\Bin\\MSBuild.exe
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.