Vb.net 为什么我的MVC应用程序将GetExecutionGassembly名称报告为App\u web\u xxxxx.dll?

Vb.net 为什么我的MVC应用程序将GetExecutionGassembly名称报告为App\u web\u xxxxx.dll?,vb.net,model-view-controller,reflection,assemblies,Vb.net,Model View Controller,Reflection,Assemblies,我正在将CruiseControl.NET持续集成环境从使用旧的Visual Studio 2008 Web部署项目升级到Visual Studio 2010 我不想使用Beta 2010 Web部署项目,因为我认为我可以利用2010年更新的发布/打包 目前,我已经成功地将CruiseControl脚本配置为调用MSBuild两次。首先在发布配置中构建解决方案,然后打包MVC项目 然后,我从一个可怕的文件路径(这让我怀疑我做得不对,但呵呵)和转换后的web.configs将正确的文件从包中复制到

我正在将CruiseControl.NET持续集成环境从使用旧的Visual Studio 2008 Web部署项目升级到Visual Studio 2010

我不想使用Beta 2010 Web部署项目,因为我认为我可以利用2010年更新的发布/打包

目前,我已经成功地将CruiseControl脚本配置为调用MSBuild两次。首先在发布配置中构建解决方案,然后打包MVC项目

然后,我从一个可怕的文件路径(这让我怀疑我做得不对,但呵呵)和转换后的web.configs将正确的文件从包中复制到测试服务器

这终于起作用了,但与我使用2008部署项目时不同的是,这段代码返回的ExecutionGasEmbly为App_web_xxxxx.dll,而不是Company.Product.web.dll,这正是我所追求的

Dim CurrentAssembly As Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly
Dim version As String = CurrentAssembly.GetName.Version.ToString
我知道GetName返回的字符串比名称长,但我正在调试它以查看它包含什么。我知道这是编译/缓存的dll,但为什么不是MVC容器中的那个呢


干杯

基本上是在我调用footer.ascx中的Assembly.getexecutinggassembly时,我就明白了这一点。这意味着代码位于页脚的动态编译dll中

我想要的是MVC网站的DLL。因此,我在控制器上使用了一个扩展属性,用程序集信息设置ViewState

在我的例子中,我希望再次使用这段代码,以便扩展属性位于不同的assemly中,我可以将其包含在各种MVC项目中。这意味着我必须更改代码以使用Assembly.GetCallingAssembly,但它现在正是我想要的工作方式