⑴ CMake ERROR Failed to run MSBuild command: MSBuild.exe
我也遇到了此問題,是vs版本選錯了。我用的vs2015,所以我該選擇Visual Studio 14 2015。14是vs版本號,vs14就是vs2015。而Visual Studio 15 2017是vs2017。
⑵ VS2017在Windows10下如何運用命令行編譯運行
如果是 dotnet framework 項目,使用 msbuild.exe 進行編譯
如果是 dotnet Core 項目,用 dotnet 命令進行編譯
⑶ 求教關於用 VS2010用命令行如何 編譯C++工程 (最好有詳細示例)
用法:
devenv
[解決方案文件
|
項目文件
|
任意文件.擴展名]
[開關]
devenv
的第一個參數通常是一個解決方案文件或項目文件。
如果您希望在編輯器中自動打開文件,
也可以使用任何其他文件作為第一個參數。當您輸入項目文件時,ide
會在項目文件的父目錄中查找與該項目文件具有相同
基名稱的
.sln
文件。如果不存在這樣的
.sln
文件,
ide
將查找引用該項目的單個
.sln
文件。如果不存在這樣的單個
.sln
文件,則
ide
將創建一個具有默認
.sln
文件名的未保存
的解決方案,其基名稱與項目文件的基名稱相同。
⑷ 命令行下編譯vs2010工程怎麼做
1.找到vs的cl.exe所在目錄,在vs2010為f:\visual
2010\vc\bin,可參考。
2.點擊「我的電腦」進行環境變數的配置,找到"path"變數加分號後加入剛才的路徑。
3.重新運行cmd開啟新的命令窗口,輸入cl檢查path設置是否生效。(只需配置一次即可,以後再次運行的時候不用再運行此命令)。
4.輸入vcvars32,這條命令是運行同路徑下的vcvars32.bat設置它的環境變數。
5.輸入cl
hello.cpp即可正常編譯。
編譯工程有兩個方法:
"c:\program
files\microsoft
visual
studio
10.0\common7\ide\devenv.exe"
/rebuild
"release|win32"
xxxxxxxxx.sln
專門的build工具:msbuild,通過開始菜單=>microsoft
visual
studio
2010=>visual
studio
tools=>visual
studio
command
prompt
(2010)
,啟動命令行環境,執行一下msbuild
⑸ VS2005 debug編譯和msbuild編譯 有什麼區別
用aspnet_compiler發布網站在asp.net 2.0模型中,vs2005已經完全脫離了編譯而成為了一個徹底的ide.算是一個不小的改動。其中更是取消了有關Web Application的概念,使得習慣了vs2003的人剛開始的時候會有一些摸不著頭腦。下面簡單說一下我在使用過程中自己總結的,算是一點經驗。
新建web工程並且位置是文件系統的時候,vs2005隻是幫你建好了一個sln文件,這個東西只是指引msbuild 如何進行編譯的,過程是:ide 調用 msbuild ,msbuild解析sln文件,msbuild調用aspnet_compiler.exe進行網站的編譯。所以aspnet_compiler.exe只是負責進行網站的編譯的。
預編譯的概念在 .netframework 1.1 裡面就存在了,vs2003中的預編譯指的是將頁面對應的cs/vb文件與resx文件編譯後統一集成到一個dll中放到bin目錄下,將aspx文件直接拷貝過去。這樣做會留下隱患,因為aspx文件就直接暴露在最後的發行包中,如果完全是codeb-behind模型還好,只能改改界面,如果採用了頁面上的來生成頁面,源代碼就暴露了。針對這些問題,vs2005採用了一種新的模式。
請參看ASP.NET 編譯工具 (Aspnet_compiler.exe) 這篇文章了解對各種文件的處理方式。
IDE發布:
vs2005中選擇 生成-〉發布網站,在對話框中的操作將映射到aspnet_compiler.exe的參數中,可更新的發布對應 -u,其他選項類似,請參考上面的文章了解。
注意:發布時將忽略web.config中的debug參數,統一生成無調試信息的文件。
手工編譯:
簡單說來,如果是無更新發布模式編譯,appcode下面的class編譯成dll放在bin下,頁面內容清空位置不變作佔位用,同時頁面被編譯成一個隨機名稱的dll,增加一個同名.compiled文件到bin目錄下,內容大概如下:
<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx">
<filedeps>
<filedep name="/Controls/footer.ascx" />
<filedep name="/Controls/header.ascx" />
<filedep name="/Forum/AdminList.aspx" />
<filedep name="/Forum/AdminList.aspx.cs" />
<filedep name="/Forum/menu.ascx" />
<filedep name="/Forum/menu.ascx.cs" />
</filedeps>
</preserve>
裡面只是列出了頁面上的customcontrol,這里已經完成了和masterfile的映射。這樣最大限度的保護了頁面的敏感信息,發布過的網站中只能看見一堆文件名了。可更新的發布模式與vs2003類似,頁面就直接拷貝過來不予編譯了。
講了一堆原理,下面說一下aspnet_compiler.exe的調用方法,這是我使用的例子
我的開發目錄是這樣的
Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:
aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:
-v / 指明了iis的虛擬目錄
-p .\devroot 表示代碼實際位置
.\pubroot 指明了要發布的位置
-f 表示強制改寫目標位置
你還可以用-u來進行傳統意義上的預編譯,-d來插入編譯符號。
總的來說,aspnet_compile結合msbuild,提供了一個很好的自動化編譯環境,值得研究研究:)
⑹ 使用MSBuild編譯與使用VS編譯有什麼不同嗎
vs就是調用msbuild編譯的。前提是你獨立用msbuild,你參數得用對,你可以和vs輸出窗口(需要打開詳細輸出)的msbuild的命令行對照。舉個例子:
1.在MS.Build.下Task為我們實現了基本的ITask信息。我們可以從這里繼承開始
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
namespaceFirstBuildTask
{
publicclassMyBuildTask:Microsoft.Build.Utilities.Task
{
privatestringoutputFile;
[Microsoft.Build.Framework.Required]
publicstringOutputFile
{
get{returnoutputFile;}
set{outputFile=value;}
}
publicoverrideboolExecute()
{
Log.LogWarning("testmessage:"+this.outputFile);
returntrue;
}
}
}
2.用VS重新載入編譯或者是MSBuild控制台編譯:UsingTask:定義:<UsingTask TaskName="TaskName" AssemblyName = "AssemblyName" TaskFactory = "ClassName" Condition="'String A'=='String B'" />
⑺ asp項目怎麼部署到伺服器裡面去
1、Visual Studio 使用您在項目「屬性」頁的「打包/發布Web」選項卡中創建的設置,確定放入部署包中的內容。下圖顯示了「打包/發布 Web」選項卡。