C# 4.0 从命令行编译C#.Net
我试图只使用命令行编译一个c#.net项目,这样我就可以创建一个bat文件来编译和运行Selenium测试。我从SVN导出了代码。我打开了命令提示符,可以使用下面的命令恢复包 然后,当我尝试使用msbuild编译时,它无法引用通过nuget添加的dll。我知道在VisualStudio中,通过PackageManager控制台,我可以使用命令(update-reinstall)并使其工作,但在没有VisualStudio的情况下如何做到这一点C# 4.0 从命令行编译C#.Net,c#-4.0,msbuild,nuget,C# 4.0,Msbuild,Nuget,我试图只使用命令行编译一个c#.net项目,这样我就可以创建一个bat文件来编译和运行Selenium测试。我从SVN导出了代码。我打开了命令提示符,可以使用下面的命令恢复包 然后,当我尝试使用msbuild编译时,它无法引用通过nuget添加的dll。我知道在VisualStudio中,通过PackageManager控制台,我可以使用命令(update-reinstall)并使其工作,但在没有VisualStudio的情况下如何做到这一点 ==== bat file ====== REM R
==== bat file ======
REM Restore External Pacakages
nuget restore packages.config -PacakgesDirectory D:\Testproject\packages"
msbuid TestProject.sln
基本上,您需要引用Msbuild可执行文件
C:\Windows\Microsoft.Net\Framework\v4.0.30319\MSBuild.exe
或
然后需要将.sln
或.csproj
文件路径(取决于您的工作文件夹)作为参数传递
您还可以指定msbuild的目标,例如Visual Studio中存在的清理目标、重建目标、构建目标
最后的命令可能如下所示:
模板:
{.NetFrameworkPath}\msbuild.exe {pathToSln} /t:{Build,Clean,Rebuild}
示例
C:\Windows\Microsoft.Net\Framework64\v4.0.30319\MSBuild.exe TestProject.sln /t:Build
C:\Windows\Microsoft.Net\Framework64\v4.0.30319\MSBuild.exe TestProject.sln /t:Clean;Build
是的,我也这么做。我遇到的问题是,我通过nuget(在VisualStudio外部的命令提示符中)还原了包。当我编译时,这些DLL没有被引用,并且它给出了一个错误“找不到类型或名称空间名称…”只需按照命令
D:\projects\contoso\>nuget.exe restore contoso.sln
ref即可。您还可以编辑.sln文件,其中有一个布尔值指示您是否要在构建时还原nuget包。
C:\Windows\Microsoft.Net\Framework64\v4.0.30319\MSBuild.exe TestProject.sln /t:Build
C:\Windows\Microsoft.Net\Framework64\v4.0.30319\MSBuild.exe TestProject.sln /t:Clean;Build