[英]Do Web Deployment Projects work with x86 build configuration
我需要構建一個網站和幾個在x86配置中引用的DLL。 到目前為止,我們一直在使用Web部署項目來創建結果站點的Zip文件及其所需的所有文件。 我們需要繼續使用WDP,但是它們似乎在x86構建配置方面存在問題。
在我的項目中,當我在Release / x86中構建解決方案時,我收到以下錯誤。
Description File Line Column Project
Error 80 Could not load type 'WwwRooot.Default'. /WwwRooot.csproj/Default.aspx 1 1 WwwRooot.csproj_deploy
Web應用程序或任何引用的類庫中沒有構建錯誤或警告。
我認為這可能是我正在研究的項目的特定內容,所以為了證明自己錯了,我創建了一個包含Web應用程序的解決方案(c#)。 然后,我使用Configuration Manager通過復制Any CPU配置來創建x86配置。 我檢查了屬性頁面,確保將新配置設置為構建到x86,並且確實如此。 我沒有錯誤地構建了解決方案。
接下來,我右鍵單擊Web App並從上下文菜單中添加了WDP。 右鍵單擊WDP並編輯項目文件。 此時,我將AnyCPU的任何引用更改為x86,以便WDP具有x86構建的條件。 我在Release / x86中重建了解決方案,一切都很好。
接下來,我添加一個類庫,使用Configuration Manager為該庫創建一個x86配置,添加對該庫的Web應用程序的引用,然后在Release / x86中重建所有內容,我收到與上面詳述的相同的錯誤。
WDP與x86構建兼容嗎?
如果我刪除類庫(和引用),解決方案(包括WDP)構建正常。
我在64位Windows 7 Pro上使用安裝了相應WDP的Visual Studio 2008 SP1。
開箱即用,Web部署項目(WDP)不適用於x86或x64構建配置。 這是因為在這些配置之一下構建的Web應用程序將結果程序集輸出到不同的位置,並且WDP不知道在那里查找DLL。
要使WDP與x86配置一起使用,您需要做一些事情。
首先,您的WDP可能沒有x86配置,您需要創建一個。 使用Visual Studio(或任何文本編輯器)中的XML編輯器編輯部署項目,在文件頂部附近將看到一個<propertyGroup>
標記(通常是第二個),其條件為Debug|AnyCPU
如下所示:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>.\Debug</OutputPath>
<EnableUpdateable>true</EnableUpdateable>
<UseMerge>true</UseMerge>
</PropertyGroup>
復制整個標記並將配置更改為Debug|x84
:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DebugSymbols>true</DebugSymbols>
<OutputPath>.\Debug</OutputPath>
<EnableUpdateable>true</EnableUpdateable>
<UseMerge>true</UseMerge>
</PropertyGroup>
現在保存文件並打開配置管理器(“生成”菜單>“配置管理器”),並檢查您的部署項目現在是否具有x86配置。
現在使用文本編輯器編輯Web應用程序項目文件,並在Debug|x86
配置中找到outputPath
元素。 它的值應為Bin\\x86\\Debug
。 這需要改為Bin
:
<!-- Before -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<OutputPath>Bin\x86\Debug\</OutputPath>
<!-- After -->
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<OutputPath>Bin\</OutputPath>
保存,關閉並重新加載Web應用程序項目。 我們現在已經指示Web應用程序將它的DLL放在WDP期望找到它們的地方。
將構建配置設置為x86
並構建項目。
沖洗並重復發布以及您可能擁有的任何其他構建配置。
試試這個
將此命令放在Web項目的后編譯事件中
xcopy "$(TargetDir)*.*" "$(TargetDir)..\..\" /Y
此命令將文件從bin \\ x86 \\ Debug復制到bin它將與Release配置一起使用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.