2011-05-11 87 views
2

我想部署我的ASP.NET MVC站點並擁有以下腳本。MSBuild:OutputPath目錄爲空

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="..\MyProjName\MyProjName.csproj"/> 
    <PropertyGroup> 
    <NewInstallDir>C:\DeployFolder\</NewInstallDir> 
    <BinDir>$(NewInstallDir)bin\</BinDir> 
    </PropertyGroup> 
    <Target Name="Build"> 
    <MSBuild Projects="..\MySlnName.sln" 
     Properties="Configuration=Release;Platform=Any CPU;OutputPath=$(BinDir)" /> 
    <Copy SourceFiles="@(Content->'..\MyProjName\%(RelativeDir)%(FileName)%(Extension)')" 
     DestinationFiles="@(Content->'$(NewInstallDir)%(RelativeDir)%(FileName)%(Extension)')" /> 
    <Copy SourceFiles="@(None->'..\MyProjName\%(RelativeDir)%(FileName)%(Extension)')" 
     DestinationFiles="@(None->'$(NewInstallDir)%(RelativeDir)%(FileName)%(Extension)')" /> 
    <MakeDir Directories="@(Folder->'$(NewInstallDir)%(RelativeDir)')" /> 
    </Target> 
</Project> 

主要想法。

我將二進制文件複製到C:\ DeployFolder(從源文件夾獲取文件夾結構)。我建立我的DLL到C:\ DeployFolder \ Bin(我沒有在源文件夾中的這個文件夾,所以我需要單獨複製這個)。

我運行我的腳本 - 所有的作品,而不是複製DLL到OutputPath。相同的腳本適用於其他asp.net mvc項目。在這種情況下,我不知道什麼是錯的。

我用變通辦法完成此問題,但我想知道這個腳本有什麼問題。

回答

5

我想嘗試的第一件事是用$(OutDir)替換您對棄用$(OutputPath)的使用。從我看到這個錯誤的時候開始,10次中有9次是由於所請求的平臺/配置與實際定義的特定項目之間的不匹配。注意跟蹤解決方案文件首選的「任何CPU」(帶空間)與項目文件中實際使用的「$(平臺)」的「AnyCPU」之間的差異。某些項目嚮導只設置「x86」平臺或者省略可導致OutputPath爲空的「AnyCPU」。

除此之外,導入一個項目文件然後構建一個解決方案的方法(可以說包含同樣的項目「有點偏離中心,考慮在項目文件本身中通過導入來部署更改。你可以在正確的位置連接到現有的構建目標,或者添加一個額外的目標。

+0

Thanks!OutDir help in the case。 – RredCat 2011-05-31 16:15:58

+0

對於任何人打這個答案多年後,評論底部的[.NET 3.5](https://msdn.microsoft.com/en-us/library/bb629394%28v=vs.90%29.aspx)的MSBuild屬性文檔似乎表明,在2008年有一些關於頁面說'OutputPath'已被棄用,但該頁面後來改變了。對於[.NET 4.0](https://msdn.mi crosoft.com/en-us/library/bb629394%28v=vs.100%29.aspx)以及更新的'OutputPath'記錄爲使用者。請注意,在VS2015中,'OutputPath'和'OutDir' _work_對我來說,但'OutputPath'是在項目文件codegen中使用的。 – Daryn 2016-01-22 01:14:12

+0

啊,'$(OutDir)'是一個[「Macro」](https://msdn.microsoft.com/en-us/library/c02as0cs.aspx) – Daryn 2016-01-22 01:27:50