2012-09-05 68 views
0

第一次您好,這是我第一次用的MSBuild,我似乎無法得到它編譯成一個DLL,我不斷收到一個用的MSBuild

C:\ WINDOWS \ Microsoft.NET \框架\ V2 .0.50727 \ Microsoft.Common.targets(490,9):e rror:未爲此項目設置OutputPath屬性。請確認您是否指定了有效的配置/平臺組合。 CONF iguration =「調試」平臺=「任何CPU」

錯誤和搜索IV無處不在,沒有解決方案,似乎工作,IV tryed在不同的機器,目前仍是同樣的錯誤,我檢查了環境變量並沒有顯得爲了實現它,我還確保proj文件包含bin \ Debug \任何人都可以告訴我哪裏出錯了?即時消息難倒。對不起,如果我沒有多少意義,我只對這個和學習很新。

+0

該項目在Visual Studio中良好地構建?如果是這樣,csproj文件是一個可以從中複製的msbuild腳本。 – akton

+0

生成以前與統一引擎和單個DLL文件需要從C#腳本重建,但我不想重做整個事情,所以我有一個csproj爲需要編譯的DLL,即時嘗試使用msbuild與該proj文件,希望有幫助? – XxPOYSONxX

回答

1

您的.csproj文件應包括<OutputPath>bin\Debug\</OutputPath>。當Visual Studio創建一個項目文件,它把<OutputPath>一個<PropertyGroup>元素的配置和平臺,像這樣的組合條件內:現在

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <OutputPath>bin\Debug\</OutputPath> 
    ... 
</PropertyGroup> 
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    <OutputPath>bin\Release\</OutputPath> 
    ... 
</PropertyGroup> 

,如果你在命令行中不帶參數運行的MSBuild它使用Debug作爲缺省值ConfigurationAnyCPUPlatform,就像您的錯誤消息所述。

因此,顯然,您的項目文件沒有<PropertyGroup>,其中包含Debug | AnyCPU組合的<OutputPath>

一個簡單的辦法,迫使它是爲OutputPath屬性作爲命令行開關提供一個值:

MSBuild my.csproj /p:OutputPath=bin\Debug\ 

的問題可能是通常包含<OutputPath><PropertyGroup>也有可能是更多的選擇因此您可能需要在項目文件中找到Configuration和Platform的有效組合。一旦找到這樣的組合,您可以使用相同的命令行開關相應地設置屬性:

MSBuild my.csproj /p:Configuration=Release /p:Platform=x86