私は別のクラスを追加したクラスライブラリを持っていますが、何を試しても、ライブラリを参照しているプロジェクトでは使用できません。このライブラリで作成したオリジナルのクラスを参照して使用することに問題はありません。
私は以下のすべてを試しました:
- プロジェクト ソリューションのクリーニング
- デバッグとリリースの両方を保存して再構築する
- プロジェクトを閉じて再度開く
- 参考にしたいライブラリ プロジェクトの手順 1 ~ 3
ライブラリを参照したいプロジェクトで、.dll フォームを bin/release フォールドからロードしようとしました。メイン ライブラリ プロジェクト .dll を obj/release フォルダにロードしようとしました。ライブラリに追加した新しいクラスにまだアクセスできないため、ニーターは違いを生みました。ビンに折りたたまれたリリースから DotNetOpenAuth_Library.dll を参照しています。
これが違いを生む場合、私は先週ダウンロードした VS 2012 Express for Web を使用しています。
ライブラリに追加したビルド エラーのないクラスは次のとおりです。
namespace DotNetOpenAuth_Library
{
class EmbeddedResourceUrlService : IEmbeddedResourceRetrieval
{
private static string pathFormat = "{0}/Resource/GetWebResourceUrl? assemblyName= {1}&typeName={2}&resourceName={3}";
//private static string pathFormat = "{0}/Resource/GetWebResourceUrl";
public Uri GetWebResourceUrl(Type someTypeInResourceAssembly, string manifestResourceName)
{
if (manifestResourceName.Contains("http"))
{
return new Uri(manifestResourceName);
}
else
{
var assembly = someTypeInResourceAssembly.Assembly;
// HACK
string completeUrl = HttpContext.Current.Request.Url.ToString();
string host = completeUrl.Substring(0,
completeUrl.IndexOf(HttpContext.Current.Request.Url.AbsolutePath));
var path = string.Format(pathFormat,
host,
HttpUtility.UrlEncode(assembly.FullName),
HttpUtility.UrlEncode(someTypeInResourceAssembly.ToString()),
HttpUtility.UrlEncode(manifestResourceName));
return new Uri(path);
}
}
}
}