.net 部署后自定义资源

.net 部署后自定义资源,.net,vb.net,embedded-resource,satellite-assembly,.net,Vb.net,Embedded Resource,Satellite Assembly,我正在尝试开发一个实用程序,允许在部署产品后定制字符串。卫星装配似乎是一种很好的方式。我有丰富的使用Microsoft.VisualBasic.VBCodeProvider和Microsoft.CSharp.CSharpCodeProvider的经验,可以在运行时编译和加载代码。然而,附属程序集似乎并不涉及完整的编译过程。当我在网上查找有关构建附属程序集的信息时,似乎需要跳过代码编译步骤,只需使用链接步骤(AL.exe)将编译后的.resources文件链接到附属DLL中 我已经使用System

我正在尝试开发一个实用程序,允许在部署产品后定制字符串。卫星装配似乎是一种很好的方式。我有丰富的使用
Microsoft.VisualBasic.VBCodeProvider
Microsoft.CSharp.CSharpCodeProvider
的经验,可以在运行时编译和加载代码。然而,附属程序集似乎并不涉及完整的编译过程。当我在网上查找有关构建附属程序集的信息时,似乎需要跳过代码编译步骤,只需使用链接步骤(
AL.exe
)将编译后的
.resources
文件链接到附属DLL中

我已经使用
System.resources.ResourceWriter
生成了编译后的
.resources
文件,但我现在正在寻找一种优雅的方法来调用
AL.exe
中的功能,该功能将从中创建DLL。当然,我可以在
AL.EXE
上简单地调用
System.Diagnostics.Process.Start
,但鉴于.NET framework内置了用于构建
.resources
文件以及编译VB.NET和C源代码的类,这似乎不是很优雅


至少我需要一个好方法来获取适当的
AL.EXE
可执行文件的路径,但最好是有一个.NET类来完成链接。

我建议您只需将其作为
.resources
文件,如中所述


由于MSDN注意到这会锁定文件,从而阻止更新ASP.NET站点,因此您可能还希望在创建资源管理器之前复制资源目录。根据您计划如何以及何时更新这些资源文件,您可能还希望将这些资源文件保存在App_Data文件夹下。

Hm。您轻松地解决了我的问题,但没有回答标题中的问题。我应该改变问题的标题吗?也许吧。也许是“在部署后自定义
.resource
文件”?我是从一个web应用程序中执行此操作的,至少在调试环境中,这会带来一些有趣的挑战。为了给基于文件的资源管理器提供一个路径,我想,“只需选择我的DLL所在的目录,因为我把它们都放在同一个地方”,但结果是我的二进制文件在运行时被移动到
%temp%\Temporary ASP.NET文件
,但因为这些资源不再是DLL的依赖项(因为它们当时是卫星DLL),所以不会被接收。现在我使用的是
Server.MapPath(“bin”)
查找资源,但欢迎您提出建议。根据ASP.NET部署的资源应编译为附属程序集。我添加了一些额外的想法。本质上,MS这样说的唯一原因是资源文件最终被锁定。我建议您只需复制它们并使用副本,就像assemb一样如果这对你来说是个问题,谎言是影子复制的。
Dim resourceMgr = ResourceManager.CreateFileBasedResourceManager(resourceName, resourcePath, Nothing)