1

私はfoo.csファイルを持っています

namespace LoL
{
    public class testing2
    {

    }
}

そして

Default.aspx.csファイル:

更新:本当に役立つかどうかはわかりませんが、ここにすべてのDefault.aspx.csファイルがあります:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using LoL;

namespace WebApplication4
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

そして私は得る:

コンパイラ エラー メッセージ: CS0246: 型または名前空間名 'LoL' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

私が使用しようとするすべてのクラスに対して。ライブラリだけではありません。VSでファイルを移動/コピーするいくつかのソリューションを試しました:Porject>既存のファイルを追加> foo.csなど

しかし、それらのいずれにも運がありません。

これを修正する方法は?これを修正する方法がわかりません。

注: VS で F5 モードを使用しようとすると動作しますが、Web サイトをオンにC:\inetpub\wwwroot\すると、ホストと同様にこのエラーが発生します。

編集: ASP.NET ページのエラー メッセージで、IIS が C# コンパイラ 4.0 を呼び出していることがわかりますが、VS 08 (VS 08 で利用可能な最後のバージョン) で .NET フレームワーク 3.5 をターゲットにしています。これは私の問題と何らかの関係がありますか?

EDIT2:コマンド ラインから Web サイト プロジェクトを正常にコンパイルできました。msbuildプロジェクト パス上のプログラム。IIS がコンパイルしようとしても機能しません。IIS はファイルを認識していませんfoo.cs

EDIT3:今私はaspnet_compiler(cmd.exeで)プログラムを使用しています:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v webApplication4

パス上:C:\inetpub\wwwroot\webApplication4

同じエラーが発生します。それで、私はVisual Studioの構成を調べました。それは.csprojファイルです。コンパイラによって渡された(VSによって生成された)インクルードファイルを探していました。

ItemGroupタグで見つけました:

  <ItemGroup>
    <Compile Include="foo.cs" />
    <Compile Include="Default.aspx.cs">

ご覧のとおり、foo.csコンパイルするために含まれています。だから、ファイルはそこにあります。aspnetコンパイラが名前空間を見つけられないのはなぜですか?

4

5 に答える 5

1

gacutil.exe を使用して、コンパイル済みのクラス ライブラリを GAC にコピーしてみてください。VS コマンド プロンプトを開き、次のように入力します。

gacutil.exe -i "assemblypath.dll"

于 2013-07-05T21:07:19.677 に答える
1

これが古いスレッドであることは知っていますが、よくある問題です。次の点に注意してください。Web サイトに複数の bin ディレクトリを持つことはできません。bin ディレクトリは、Web サイトのルート フォルダーに存在する必要があります。bin ディレクトリを含むサブディレクトリを作成することはできません。多くの場合、新しいプロジェクトを使用して Visual Studio で Web ページを作成し、その Web ページを Web サイトのサブディレクトリに発行します。Web ページが公開されると、新しい bin フォルダーがそのサブディレクトリに配置されます。その bin ディレクトリは役に立たず、何からも参照されません。サブフォルダー内の Web ページは、Web サイトのルートにある bin ディレクトリ内の依存関係を検索しようとします。これはおそらくサービス プロバイダーによって設定されたものであるか、単に IIS/ASP.net のデフォルトの動作である可能性があります。いずれにせよ、ウェブサイトを公開するときは、サイト全体を公開する必要があります。それはすべてを意味します。パブリケーション プロセスには、ルート ディレクトリからすべてを含める必要があります。サブフォルダーにある Web ページに依存関係を追加する場合は、その依存関係を Web サイト (ルート フォルダーにある Web サイト全体) に追加する必要があります。

于 2015-09-02T00:23:07.097 に答える