2010-05-21 118 views
4

我想在命令提示符下使用devenv命令從.vdproj文件生成MSI文件。該命令運行良好,但沒有生成MSI文件。哪裏不對?在命令行中針對.vdproj運行devenv不會生成MSI

我應該在環境變量中設置什麼,或者有沒有其他方法可以從.vdproj文件生成MSI?

回答

0

我不認爲msi會從devenv.com生成,你可以選擇wix來創建安裝程序。

南特有一個任務,msi任務,但它需要micrsoft內閣sdk,它不可用於下載。

閱讀更多細節Build merge module without Devenv from .vdproj

附:如果您發現另一種構建安裝程序的方式,請分享。

4

這通常是(以我的經驗!)由於沒有針對正確的構建配置而導致的。在Visual Studio中,在解決方案級別,您可以轉至Build菜單並選擇Configuration Manager。確保對於所有適用配置(通過Active Solution Configuration下拉列表選擇),安裝程序項目在Build列中有一個勾號。

現在,您需要確保在調用devenv的,當你通過適當的構建配置(即一個有Build打勾的安裝項目)如下:

C:\PathToVisualStudio\devenv.exe /Rebuild Release C:\PathToProject\ProjectName.sln" /Out "PathToProject\vs_errors.txt" 

(在這個例子中,Release是我針對的生成配置)

該命令還記錄的Visual Studio的輸出到同一文件夾作爲您的解決方案稱爲vs_errors.txt這樣你就可以查看該文本文件,以確定是否有任何其他原因安裝項目無法構建。

3

上面的腳本爲我工作,嘗試它,讓我知道它是否適合你。你幾乎可以有任何配置。我已經使用了Release | x86。只需用您的配置替換該行,它應該工作。確保您使用的任何配置存在於.sln文件或.csproj文件中,否則您可能會收到關於無效配置的一些錯誤。希望這可以幫助。

<target name="BuildMsi"> 
    <echo message="Creating installables (.msi) for MyTestApplication, please wait..."/>  
    <exec program="c:\program files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"> 
     <arg value="c:\My app\My_Test_solution.sln"/> 
     <arg value="/build"/> 
     <arg value="Release|x86" /> 
     <arg value="/project"/> 
     <arg value="c:\My app\setup\My_Test_solution.vdproj"/> 
    </exec> 
</target> 
1

我的情況是一樣的,並與/項目給予項目名稱與.msi文件生成的幫助下,

devenv /build Release /project SDK-Deployment SDK-Deployment.vdproj