我使用EXE项目(azure应用程序的启动任务)使用我的服务堆栈,因为我已将以下服务堆栈的DLL和一些Azure的DLL复制到EXE项目中.

当我构建这个EXE项目时,Azure DLL将与我的EXE捆绑在一起但服务堆栈的DLL不会与EXE捆绑在一起,因为要在任何机器上运行我的EXE,我需要手动复制所有服务堆栈的DLL.
我已经使用了这个服务栈的dll来使用
JsonServiceClient client = new JsonServiceClient(servicepath);
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能将所有这些DLL捆绑到我的EXE中?
我在命名空间和程序集之间变得非常困惑.是System.Data和System.Web命名空间或程序集?
我注意到这些被称为命名空间,同时它们存在于GAC_32文件夹中.那究竟是什么?
是否有类似的东西:
AppDomain.CurrentDomain.GetAssemblyByName("TheAssemblyName")
Run Code Online (Sandbox Code Playgroud)
因此AppDomain.CurrentDomain.GetAssemblies(),我们可以直接获取特定的程序集,而不是循环.
我的项目设置如下:
项目"消费者"引用"定义"和"实现",但不静态引用"实现"中的任何类型.
当应用程序启动时,Project"Consumer"在"Definition"中调用静态方法,该方法需要在"Implementation"中查找类型
有没有办法可以在不知道路径或名称的情况下强制将任何引用的程序集加载到App域中,并且最好不必使用完整的IOC框架?
我已经看到了这个:VSTS 2010 SGEN:错误:无法加载文件或程序集(HRESULT的异常:0x80131515)并且没有任何答案有效.当我构建或任何东西时它也不会出现.我可以运行该项目,当我尝试添加一个实体框架模板控制器时会发生这种情况:

然后我收到这个错误:

所有项目文件都在我的网络共享上,因为这是我的文档所在的工作所在.这是我尝试过的:
1)将项目设置中的发电机序列化装配转为开,关和自动.
2)使用以下代码将sgen.exe.config添加到C:\ Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0工具:
<configuration>
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)
3)尝试取消阻止程序集,但我在属性选项卡中没有取消阻止选项.

这些解决方案都不起作用.有谁知道如何解决这个问题??? 对于来自nuget或我自己的项目的任何自定义程序集,由于它们在网络空间中的位置而发生此错误,但仅在尝试添加EF模板控制器时发生.我可以构建并运行程序.
可能重复:
Visual Studio"任何CPU"目标
我注意到在VS中编译C#代码时,通常有编译32/64位系统的选项,还有一个用于编译任何cpu的选项.
这两个选项有什么区别?选择任何CPU只能编译为中间字节代码,而第一个选项编译为机器代码(这听起来不太可能)?或者是其他东西?
我正在将一个项目从project.json一个新的csproj格式转移到它,它包含一个派生自的类DbParameterCollection.在我的真实项目中,我使用多目标,但出于这个问题的目的,我们只需要关心net45.
编译器告诉我,我必须覆盖以前没有的三个属性:
如果您按照这些文档链接(适用于.NET 4.5),您将看到所有属性都是虚拟的 - 而不是抽象的.如果我只是通过调用来构建代码csc,那么一切都很好......只有当我使用.NET Core SDK时才遇到问题.
以下是重现问题的示例代码:
项目文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net45</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
C#代码:
using System;
using System.Collections;
using System.Data.Common;
public class DummyParameterCollection : DbParameterCollection
{
public override int Count => 0;
public override object SyncRoot => null;
public override void Remove(object value) {}
public override void RemoveAt(int index) {}
public override void RemoveAt(string parameterName) {}
public override int Add(object value) => 0;
public override …Run Code Online (Sandbox Code Playgroud) 我有一些WPF应用程序,我希望我的所有样式都在共享程序集中,而不是分别在每个应用程序中声明它们.
我正在寻找一种方法,所以我不必改变我Style="{StaticResource BlahBlah}"现有的应用程序; 我只想添加对此样式程序集的引用,并将其从当前应用程序中删除,因此它从程序集中获取.
有什么办法吗?
我正在从Visual Studio命令提示符2010中运行GacUtil.exe,以便向GAC注册dll(CatalogPromotion.dll).运行该实用程序后,它说Assembly Successfully added to the cache,并且运行gacutil /l CatalogPromotionDll显示GAC包含程序集,但是当我从Windows资源管理器导航到C:\ WINDOWS\assembly时,我看不到程序集. 为什么我不能从Windows资源管理器中看到WINDOWS\assembly中的程序集,但我可以使用gacutil.exe看到它?
背景:这是我在VS Tools的命令提示符中输入的内容:
C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
\Debug>gacutil /i CatalogPromotionDll.dll
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly successfully added to the cache
C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
\Debug>gacutil /l CatalogPromotionDll
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
The Global Assembly Cache contains the following assemblies:
CatalogPromotionDll, Version=1.0.0.0, Culture=neutral, … 我最近创建了一个接口层来区分DataAccessProvider和业务逻辑层.通过这种方法,我们可以随时通过更改Web/App.Config中的值来更改DataAccessProvider的选择.(如果需要,可以给出更多细节).
无论如何,要做到这一点,我们使用反射来完成我们可以工作的DataProvider类.
/// <summary>
/// The constructor will create a new provider with the use of reflection.
/// If the assembly could not be loaded an AssemblyNotFoundException will be thrown.
/// </summary>
public DataAccessProviderFactory()
{
string providerName = ConfigurationManager.AppSettings["DataProvider"];
string providerFactoryName = ConfigurationManager.AppSettings["DataProviderFactory"];
try
{
activeProvider = Assembly.Load(providerName);
activeDataProviderFactory = (IDataProviderFactory)activeProvider.CreateInstance(providerFactoryName);
}
catch
{
throw new AssemblyNotFoundException();
}
}
Run Code Online (Sandbox Code Playgroud)
但现在我想知道反思有多缓慢?
assemblies ×10
c# ×6
.net ×3
.net-core ×1
32bit-64bit ×1
64-bit ×1
anycpu ×1
appdomain ×1
asp.net-mvc ×1
exe ×1
gac ×1
gacutil ×1
ilmerge ×1
namespaces ×1
performance ×1
reflection ×1
servicestack ×1
styles ×1
windows ×1
wpf ×1
xaml ×1