簡體   English   中英

Web部署項目是否適用於x86構建配置

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM