相关疑难解决方法(0)

"复制本地"和项目引用的最佳做法是什么?

我有一个大的c#解决方案文件(~100个项目),我正在努力改善构建时间.我认为"复制本地"在很多情况下对我们来说都是浪费,但我想知道最佳做法.

在我们的.sln中,我们有应用程序A取决于程序集B,它取决于程序集C.在我们的例子中,有几十个"B"和一些"C".由于这些都包含在.sln中,我们正在使用项目引用.所有程序集当前都构建为$(SolutionDir)/ Debug(或Release).

默认情况下,Visual Studio将这些项目引用标记为"复制本地",这会导致每个"C"被复制到$(SolutionDir)/ Debug中,对于构建的每个"B".这似乎很浪费.如果我只关闭"复制本地",会出现什么问题?大型系统的其他人做什么?

跟进:

很多响应建议将构建分解为较小的.sln文件......在上面的示例中,我将首先构建基础类"C",然后是大量模块"B",然后是一些应用程序,"一个".在这个模型中,我需要对来自B的C进行非项目引用.我遇到的问题是"Debug"或"Release"被添加到提示路径中,我最终构建了我的Release版本的"B"反对"C"的调试版本.

对于那些将构建拆分为多个.sln文件的人,如何管理这个问题?

.net c# msbuild visual-studio

154
推荐指数
7
解决办法
9万
查看次数

RavenDB:在内存中获取异常文档存储"Voron在32位模式下容易出现故障."

遵循RavenDB的文档后

http://ravendb.net/docs/article-page/2.5/csharp/samples/raven-tests/createraventests

我无法成功通过内存文档存储的创建来运行单元测试.我使用RavenDB的RavenTestBase复制并粘贴了上面文档中的测试样本.

[TestClass]
public class IndexTest : RavenTestBase
{
    [TestMethod]
    public void CanIndexAndQuery()
    {
        using (var store = NewDocumentStore())
        {
            new SampleData_Index().Execute(store);

            using (var session = store.OpenSession())
            {
                session.Store(new SampleData
                {
                    Name = "RavenDB"
                });

                session.SaveChanges();
            }

            using (var session = store.OpenSession())
            {
                var result = session.Query<SampleData, SampleData_Index>()
                    .Customize(customization => customization.WaitForNonStaleResultsAsOfNow())
                    .FirstOrDefault();

                Assert.Equals(result.Name, "RavenDB");
            }
        }
    }
}

public class SampleData
{
    public string Name { get; set; }
}

public class SampleData_Index : AbstractIndexCreationTask<SampleData>
{
    public SampleData_Index()
    { …
Run Code Online (Sandbox Code Playgroud)

unit-testing ravendb

15
推荐指数
1
解决办法
1664
查看次数

Azure上的Microsoft.Web.Administration组装错误

我一直在尝试将一个新的asp.net mvc项目部署到Azure进行生产.一切都在本地工作,但我在部署时遇到组件问题.

导航到大多数页面后,我开始收到以下错误:

Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Run Code Online (Sandbox Code Playgroud)

使用以下信息:https://stackoverflow.com/a/8824250/1411764我发现了异常:

Could not load file or assembly 'Microsoft.Web.Administration, 
Version=7.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or 
one of its dependencies. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

Microsoft.Web.Administration 似乎是一个IIS程序集.

然后我Microsoft.Web.Administration使用Nuget添加到项目中.

现在我遇到了一个新的错误:

Could not load file or assembly 'Microsoft.Web.Administration' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc azure .net-assembly

12
推荐指数
1
解决办法
3822
查看次数

如何诊断Resharper Unit Test Runner"无法加载一个或多个请求的类型"错误

当我使用Resharper Unit Test Runner运行或调试我的单元测试时,我弹出一个对话框,说"单元测试运行器无法运行测试 - 无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息" :

在此输入图像描述

现在我尝试了重建,清理,手动删除文件夹,可视工作室重启,硬件重启,查看输出/调试窗口,以及晚上启用R#"内部"模式,以便我可以看到它的日志(写入%Temp%\ JetLogs据我了解),但没有一个解决它或提供任何线索.我试过"调试"R#但是在调试器遇到任何异常之前,对话框再次弹出.

我该怎么解决这个问题呢?这非常烦人!

我正在使用:

  • R#2016.1.2
  • NUnit 3.2.1
  • Visual Studio 2015 Update 2(14.0.25123)

.net resharper unit-testing visual-studio visual-studio-2015

11
推荐指数
2
解决办法
2394
查看次数

子应用程序是否从其父web.config继承?

我从现有的应用程序中设置了IIS应用程序.

父母web.config是继承还是我必须明确设置的东西?

asp.net iis-7 web-config

9
推荐指数
1
解决办法
7995
查看次数

无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息.使用EntityDataSource

我有一个问题,只显示EntityDataSource是否存在于ASP.NET(*.aspx)页面上.有趣的是,当我刷新页面(F5或再次查看)并且它让我发疯时,它似乎是一个实体框架的错误,因为我尝试了另一个项目,我只是得到了同样的错误.

无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.异常详细信息:System.Reflection.ReflectionTypeLoadException:无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息.

堆栈跟踪:

[ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.]
   System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) +0
   System.Reflection.RuntimeModule.GetTypes() +4
   System.Reflection.Assembly.GetTypes() +78
   System.Data.Metadata.Edm.ObjectItemConventionAssemblyLoader.LoadTypesFromAssembly() +32
   System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() +25
   System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData) +160
   System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors) +166
   System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) +316
   System.Data.Metadata.Edm.ObjectItemCollection.ExplicitLoadFromAssembly(Assembly assembly, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) +53 …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework exception-handling entitydatasource

5
推荐指数
2
解决办法
6万
查看次数

加载 DLL 期间的 C# 异常。找不到解决办法

我有一个问题,DLL在运行时加载C#.

以下代码:

foreach (var f in Directory.EnumerateFiles(startFolder, "*.dll",            SearchOption.AllDirectories))
{
   try
   {
       var assembly = Assembly.LoadFrom(f);
       var types = assembly.GetTypes(); //exception raised here

       foreach (var type in types)
       {
            if (type.GetInterface("IPlayerFactory") != null)
                 instances.Add((IPlayerFactory)Activator.CreateInstance(type));
       }
       assembly = null;
    }
    catch (ReflectionTypeLoadException ex) { /* later, keep reading  */}
Run Code Online (Sandbox Code Playgroud)

所以例外说:

An exception of type 'System.Reflection.ReflectionTypeLoadException' occurred in
mscorlib.dll but was not handled in user code

Additional information: Unable to load one or more of the requested types. …
Run Code Online (Sandbox Code Playgroud)

c# reflection dll

5
推荐指数
1
解决办法
1万
查看次数

实体框架 LoaderExceptions 无法加载一种或多种请求的类型

我有一个使用实体框架的 Web 服务。当发布到测试环境时,我收到以下错误:

“无法加载一种或多种请求的类型。” - 下面的堆栈跟踪...

测试盒安装了.NET 3.5 SP 1,我已经在这里阅读了之前的帖子:

错误消息“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

然而,答案并不能解决我的情况。我已将开发计算机上的工作副本复制并粘贴到测试盒上,以确保调试 DLL 不存在问题(如答案所示),但运气不佳。

这是一个已知的问题?我花了整个早上尝试调试这个!如果有人知道解决方案,请告诉我!

Retrieve the LoaderExceptions property for more information.   at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)
   at System.Reflection.Assembly.GetTypes()
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext context)
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext context)
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly assembly, Boolean loadReferencedAssemblies, Dictionary`2 knownAssemblies, Dictionary`2& typesInLoading, List`1& errors)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(Type type)
   at System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(Type type, Assembly callingAssembly)
   at System.Data.Objects.ObjectContext.CreateQuery[T](String queryString, ObjectParameter[] parameters)
   at Company.Domain.ICommuicationsEntities.CreateQuery[T](String queryString, ObjectParameter[] parameters)
   at Comany.EntityFrameworkRepository`1.GetQuery()
   at Comany.Repositories.EntityFrameworkRepository`1.GetFiltered(Expression`1 filter, IncludeBuilder`1 includeBuilder)
   at Comany.Repositories.EntityFrameworkRepository`1.GetFiltered(Expression`1 …
Run Code Online (Sandbox Code Playgroud)

entity-framework

4
推荐指数
1
解决办法
1万
查看次数

mstest - 无法获取类型错误

使用"运行在溶液中的所有测试"或"运行检查测试"的时候,我发现了以下错误,但如果我使用"调试检查测试"他们跑的罚款.

无法获取类型TestDataLayer.TestPatientDAO,TestDataLayer,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null.错误:System.TypeLoadException:无法从程序集"DomainLayer,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"加载类型"DomainLayer.BaseEntity".

DomainLayer.BaseEntity是一个抽象类.

删除和添加对DomainLayer的引用再次没有帮助.

卸载和加载TestDataLayer或DomainLayer没有帮助.

编辑:删除和添加CodeCoverage解决了问题(wtf)

mstest visual-studio

4
推荐指数
1
解决办法
1613
查看次数

C# - 动态加载 DLL - System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型

在 C# 中,当尝试获取类型时,使用下面的代码从文件夹加载 DLL,获取下面的堆栈跟踪。

var assembly = Assembly.LoadFile(assemblyInfo.FullName); // assembly loads perfectly using the absolute path.
var types = assembly.GetTypes(); // this line throws the below stacktrace.
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
   at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
   at System.Reflection.Assembly.GetTypes()
Run Code Online (Sandbox Code Playgroud)

我还检查了现有的解决方案:错误消息“无法加载一种或多种请求的类型”。检索 LoaderExceptions 属性以获取更多信息。,在 C# 中运行时加载 DLL(不起作用)

c# dll dllimport dll-injection dynamic-dll-import

3
推荐指数
1
解决办法
1万
查看次数