标签: assemblies

如何在不加载程序集的情况下获取程序集的版本?

大型程序的一个小功能检查文件夹中的程序集,并用最新版本替换过时的程序集.要实现此目的,它需要读取现有程序集文件的版本号,而不实际将这些程序集加载到执行过程中.

.net assemblies versions

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

ASP.NET:WebResource.axd调用404错误:如何知道哪个程序集/资源缺失或负责?

我在ASP.NET 3.5(AJAX)Web应用程序内的特定WebResource.axd调用上收到404 HTTP状态错误(未找到).我猜错误是因为bin文件夹/ GAC中缺少特定的引用程序集.但我不知道哪个,因为请求资源的页面非常复杂(我正在使用第三方控件和ASP.NET Ajax.)

是否可以从查询的加密"d"查询字符串参数中获知,如:

.../WebResource.axd?d=...
Run Code Online (Sandbox Code Playgroud)

哪个程序集应该创建内容并且可能丢失?

注意:还有其他WebRequest.axd调用成功执行.

asp.net assemblies webresource.axd

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

签署组件 - 基础知识

签署集会意味着什么?为什么要这样做?

签署它的最简单方法是什么?什么是.snk文件?

.net c# assemblies

24
推荐指数
4
解决办法
8349
查看次数

更改多个项目的程序集版本

如何在多个项目的AssemblyInfo.cs文件中更改程序集版本.我们的解决方案中有大约75个项目,我们几乎每周都需要更改版本.最快的方法是什么?

.net versioning assemblies

24
推荐指数
1
解决办法
7418
查看次数

如何阻止Visual Studio向我的web.config添加程序集?

每次构建或发布网站时,Visual Studio都会尝试检出web.config文件,以便它可以添加许多不需要的程序集.

换一种说法:

web.config之前:

<configuration>
   <system.web>
      <compilation>
         <assemblies>
         </assemblies>
      </compilation>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

web.config之后:

<configuration>
   <system.web>
      <compilation>
         <assemblies>
             <add assembly="Microsoft.ReportViewer.Common... />
             <add assembly="Microsoft.ReportViewer.WinForms... />
             <add assembly="System.DirectoryServices... />
             <add assembly="System.Windows.Forms... />
             <add assembly="ADODB... />
             <add assembly="System.Management... />
             <add assembly="System.Data.OracleClient... />
             <add assembly="Microsoft.Build.Utilities... />
             <add assembly="Microsoft.ReportViewer.ProcessingObjectModel... />
             <add assembly="System.Design... />
             <add assembly="Microsoft.Build.Framework... />
         </assemblies>
      </compilation>
   </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这些程序集都不是必需的,并且大多数程序集不存在于目标测试或生产服务器上.

我每次构建时都会一直删除它们,但它真的很快就会变得非常烦人.

现在我的解决方法是将web.config保持为只读 - 因此Visual Studio无法向其添加程序集.


更新

截图作为证据:

项目属性页面之前:

链接文字http://i26.tinypic.com/206c46c.jpg

Web.Config之前:

alt text http://i31.tinypic.com/30rr728.jpg

项目属性页面后:

替代文字http://i27.tinypic.com/25a3z2x.jpg

Web.config之后:

alt text …

dependencies assemblies web-config visual-studio

24
推荐指数
2
解决办法
6601
查看次数

是否可以在没有exe的情况下执行.NET dll来加载它?

我很好奇是否有办法在新进程中执行静态.DLL方法而不必为它创建.EXE?

AFAIK,本机Win32/64 DLL无法实现..NET DLL程序集怎么样?

更新:我忘了提到我主要感兴趣的是以编程方式执行此操作(来自C#代码,具体而言).

谢谢!

结论:虽然没有人"敢"拼出来,但答案似乎都倾向于"不".需要通过一种传统方式(EXE,PowerShell等)启动进程,然后说服进程加载DLL并执行其中的代码.我想我错误地希望托管的DLL能够提供更多功能.

再次感谢所有插话的人!

.net assemblies createprocess

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

如何创建和使用仅限.NET元数据的"参考组件"?

从3.0版开始,.NET在C:\ Program Files\Reference Assemblies\Microsoft ....下安装了许多不同的"引用程序集",以支持不同的配置文件(比如.NET 3.5客户端配置文件,Silverlight配置文件).其中每个都是一个正确的.NET程序集,只包含元数据 - 没有IL代码 - 每个程序集都标有ReferenceAssemblyAttribute.元数据仅限于适用的配置文件下可用的那些类型和成员 - 这就是intellisense显示一组受限制的类型和成员的方式.在运行时不使用引用程序集.

我从这篇博文中了解到了一些情况.

我想为我的库创建和使用这样的引用程序集.

  1. 如何创建仅元数据的程序集 - 是否有一些编译器标志或ildasm后处理器?
  2. 是否存在控制将哪些类型导出到不同"配置文件"的属性?
  3. 如何在运行时引用程序集解析 - 如果我的应用程序目录中存在引用程序集而不是'真正的'程序集,而不是GAC中的引用程序集将会探测继续并且我的AssemblyResolve事件触发,以便我可以提供在运行时实际组装?

任何想法或指示我可以了解更多关于这一点将不胜感激.

更新:环顾四周,我看到.NET 3.0'引用程序集'确实有一些代码,并且引用程序集属性仅在.NET 4.0中添加.因此,新运行时的行为可能会有所改变.

为什么?对于我的Excel-DNA(http://exceldna.codeplex.com)加载项库,我通过将引用的程序集作为资源打包到.xll文件中来创建单文件.xll加载项.打包的程序集包括用户的加载项代码,以及Excel-DNA托管库(可能由用户的程序集引用).

这听起来相当复杂,但大部分时间都运行良好 - 加载项是一个小文件,所以没有安装分发问题.由于版本不同,我遇到(并非意外)问题 - 如果Excel-DNA托管库的旧版本作为文件,运行时将加载而不是打包的(我永远不会有机会干扰加载).

我希望为我的Excel-DNA管理部分制作一个参考程序集,用户在编译它们的加载项时可以指向它.但是如果他们在运行时错误地拥有了这个程序集的一个版本,那么运行时应该无法加载它,并让我有机会从资源加载真正的程序集.

.net c# assemblies

24
推荐指数
1
解决办法
4509
查看次数

加载同一程序集的不同版本

使用反射,我需要加载同一组件的2个不同版本.我可以在同一个进程中在2个不同的AppDomain中加载2个版本吗?

我需要从旧版本的应用程序到新版本进行一些数据迁移.如果可能,请告诉我,或者我应该使用2个单独的流程.

.net c# reflection dll assemblies

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

程序集文件版本没有变化?

我在assemblyinfo.cs类中有代码:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)

调用System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()工作正常并提供更新版本,但是,当我在Windows资源管理器中查看生成的dll时,右键单击属性,单击"详细信息"选项卡,fileversion显示"1.0.0.0",即使上面的输出显示为1.0.3489.17621 ?

c# version-control assemblies

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

为什么程序集绑定重定向在我的网站中不起作用?

我有一个网站项目,我使用内置的开发Web服务器从Visual Studio运行.网站的虚拟路径设置为/

web.config包含一个运行时元素

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="CMS.Controls" publicKeyToken="834b12a258f213f9" culture="neutral" />
      <bindingRedirect oldVersion="4.1.3518.21577" newVersion="4.1.3561.21846" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

我已经xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"从根configuration元素中删除了该属性.

这是错误:

无法加载文件或程序集'CMS.Controls,Version = 4.1.3518.21577,Culture = neutral,PublicKeyToken = 834b12a258f213f9'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

这是绑定的日志:

The operation failed.
Bind result: hr = 0x80131040. No description available.
...
LOG: DisplayName = CMS.Controls, Version=4.1.3518.21577, Culture=neutral, PublicKeyToken=834b12a258f213f9
 (Fully-specified)
...
LOG: This bind starts in default load context.
LOG: Using application configuration file: D:\Project\WebSite\web.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: CMS.Controls, …
Run Code Online (Sandbox Code Playgroud)

.net asp.net assemblies

23
推荐指数
1
解决办法
8247
查看次数