當我嘗試使用msbuild創建一個用於web部署的包時,它只包含項目dll。包壓縮文件或臨時目錄不包含引用的項目的dll。我看過this post,那不是我的問題。我絕對使用我創建部署包的主項目中引用項目的代碼。MSBUILD web部署包不包含項目引用DLL的
我使用MSBUILD 4來創建包。
當我使用VS2010使用完全相同的項目文件創建包時,它工作正常。所有引用的項目都包含在package.zip文件中的dll。
我試着改變_PackageTempDir的位置,但也沒有解決問題。
我試過拿出ExcludeFilesFromDeployment屬性並將PackageAsSingleFile設置爲false來查看是否會改變結果。
這是我的包裝目標。所有的正則表達式都是這樣,我可以將我的項目文件名稱從搜索路徑的末尾拉出,然後使用該名稱作爲輸出文件夾的名稱和zip文件的名稱。 PackageOutputDir是我正在導入的屬性。
<Target Name="Package">
<MSBuild Projects="@(PackageProject)" Targets="Package" Properties="Platform=$(Platform);
Configuration=$(Configuration);
DeployOnBuild=true;
DeployTarget=Package;
PackageLocation=$(PackageOutputDir)\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2])\$([System.Text.RegularExpressions.Regex]::Split($(ProjectName), '(.*\\)([a-z,A-Z,0-9,_,-]+)(\.\*proj;)')[2]).zip;
PackageAsSingleFile=true;
ExcludeFilesFromDeployment=Web.config;
_PackageTempDir=$(PackageOutputDir)\temp;">
</MSBuild>
</Target>
任何想法爲什麼它不包括我引用的項目DLL?
這到底會做什麼? – dove
我很想知道爲什麼DeployOnBuild = true導致程序集未被複制到obj文件夾 –